pike.git / src / code / ppc64.h

version» Context lines:

pike.git/src/code/ppc64.h:17:    add_to_program(((OPCD)<<26)|((S)<<21)|((A)<<16)|((SH)<<11)| \    ((MB)<<6)|((ME)<<1)|(Rc))   #define PPC_INSTR_MD_FORM(OPCD,S,A,SH,MB,XO,Rc) \    add_to_program(((OPCD)<<26)|((S)<<21)|((A)<<16)|(((SH)&31)<<11)| \    (((MB)&31)<<6)|((MB)&32)|((XO)<<2)|(((SH)>>4)&2)|(Rc))   #define PPC_INSTR_XL_FORM(OPCD,BO,BI,CRBB,XO,LK) \    add_to_program(((OPCD)<<26)|((BO)<<21)|((BI)<<16)|((CRBB)<<11)| \    ((XO)<<1)|(LK))   #define PPC_INSTR_XFX_FORM(OPCD,S,SPR,XO) \    add_to_program(((OPCD)<<26)|((S)<<21)|((SPR)<<11)|((XO)<<1)) + #define PPC_INSTR_XO_FORM(OPCD,D,A,B,OE,XO,Rc) \ +  add_to_program(((OPCD)<<26)|((D)<<21)|((A)<<16)|((B)<<11)|((OE)<<10)|((XO)<<1)|(Rc))      #define BC(BO,BI,BD) PPC_INSTR_B_FORM(16,BO,BI,BD,0,0)      #define CMPLI(crfD,A,UIMM) PPC_INSTR_D_FORM(10,crfD,A,UIMM)   #define ADDIC(D,A,SIMM) PPC_INSTR_D_FORM(12,D,A,SIMM)   #define ADDI(D,A,SIMM) PPC_INSTR_D_FORM(14,D,A,SIMM)   #define ADDIS(D,A,SIMM) PPC_INSTR_D_FORM(15,D,A,SIMM)   #define ORI(A,S,UIMM) PPC_INSTR_D_FORM(24,S,A,UIMM)   #define ORIS(A,S,UIMM) PPC_INSTR_D_FORM(25,S,A,UIMM)   #define LWZ(D,A,d) PPC_INSTR_D_FORM(32,D,A,d)   #define STW(S,A,d) PPC_INSTR_D_FORM(36,S,A,d)   #define LHA(D,A,d) PPC_INSTR_D_FORM(42,D,A,d) -  + #define STH(S,A,d) PPC_INSTR_D_FORM(44,S,A,d)   #define LD(D,A,ds) PPC_INSTR_DS_FORM(58,D,A,ds,0)   #define LDU(D,A,ds) PPC_INSTR_DS_FORM(58,D,A,ds,1)   #define STD(S,A,ds) PPC_INSTR_DS_FORM(62,S,A,ds,0)      #define RLWINM(S,A,SH,MB,ME) PPC_INSTR_M_FORM(21,S,A,SH,MB,ME,0)   #define RLDICL(S,A,SH,MB) PPC_INSTR_MD_FORM(30,S,A,SH,MB,0,0)   #define RLDICR(S,A,SH,ME) PPC_INSTR_MD_FORM(30,S,A,SH,ME,1,0)      #define MFSPR(D,SPR) PPC_INSTR_XFX_FORM(31,D,(((SPR)&0x1f)<<5)|(((SPR)&0x3e0)>>5),339)   #define MTSPR(D,SPR) PPC_INSTR_XFX_FORM(31,D,(((SPR)&0x1f)<<5)|(((SPR)&0x3e0)>>5),467)      #define BCLR(BO,BI) PPC_INSTR_XL_FORM(19,BO,BI,0,16,0)   #define BCLRL(BO,BI) PPC_INSTR_XL_FORM(19,BO,BI,0,16,1)   #define B(LI) PPC_INSTR_I_FORM(18,LI,0,0)   #define BL(LI) PPC_INSTR_I_FORM(18,LI,0,1)   #define BLA(LI) PPC_INSTR_I_FORM(18,LI,1,1)    -  + #define SUBF(D,A,B) PPC_INSTR_XO_FORM(31,D,A,B,0,40,0) + #define DIVDU(D,A,B) PPC_INSTR_XO_FORM(31,D,A,B,0,457,0) +    #define LOW_GET_JUMP() ((INT32)PROG_COUNTER[JUMP_EPILOGUE_SIZE])   #define LOW_SKIPJUMP() (SET_PROG_COUNTER(PROG_COUNTER + JUMP_EPILOGUE_SIZE + 1))      #define SET_REG32(REG, X) do { \    INT32 val_ = X; \    INT32 reg_ = REG; \    if ((-32768 <= val_) && (val_ <= 32767)) { \    /* addi reg,0,val */ \    ADDI(reg_, 0, val_); \    } else { \