dfp-ops.c.inc (5993B)
1#define _GEN_DFP_LONG(name, op1, op2, mask) \ 2GEN_HANDLER_E(name, 0x3B, op1, op2, mask, PPC_NONE, PPC2_DFP) 3 4#define _GEN_DFP_LONG_300(name, op1, op2, mask) \ 5GEN_HANDLER_E(name, 0x3B, op1, op2, mask, PPC_NONE, PPC2_ISA300) 6 7#define _GEN_DFP_LONGx2(name, op1, op2, mask) \ 8GEN_HANDLER_E(name, 0x3B, op1, 0x00 | op2, mask, PPC_NONE, PPC2_DFP), \ 9GEN_HANDLER_E(name, 0x3B, op1, 0x10 | op2, mask, PPC_NONE, PPC2_DFP) 10 11#define _GEN_DFP_LONGx4(name, op1, op2, mask) \ 12GEN_HANDLER_E(name, 0x3B, op1, 0x00 | op2, mask, PPC_NONE, PPC2_DFP), \ 13GEN_HANDLER_E(name, 0x3B, op1, 0x08 | op2, mask, PPC_NONE, PPC2_DFP), \ 14GEN_HANDLER_E(name, 0x3B, op1, 0x10 | op2, mask, PPC_NONE, PPC2_DFP), \ 15GEN_HANDLER_E(name, 0x3B, op1, 0x18 | op2, mask, PPC_NONE, PPC2_DFP) 16 17#define _GEN_DFP_QUAD(name, op1, op2, mask) \ 18GEN_HANDLER_E(name, 0x3F, op1, op2, mask, PPC_NONE, PPC2_DFP) 19 20#define _GEN_DFP_QUAD_300(name, op1, op2, mask) \ 21GEN_HANDLER_E(name, 0x3F, op1, op2, mask, PPC_NONE, PPC2_ISA300) 22 23#define _GEN_DFP_QUADx2(name, op1, op2, mask) \ 24GEN_HANDLER_E(name, 0x3F, op1, 0x00 | op2, mask, PPC_NONE, PPC2_DFP), \ 25GEN_HANDLER_E(name, 0x3F, op1, 0x10 | op2, mask, PPC_NONE, PPC2_DFP) 26 27#define _GEN_DFP_QUADx4(name, op1, op2, mask) \ 28GEN_HANDLER_E(name, 0x3F, op1, 0x00 | op2, mask, PPC_NONE, PPC2_DFP), \ 29GEN_HANDLER_E(name, 0x3F, op1, 0x08 | op2, mask, PPC_NONE, PPC2_DFP), \ 30GEN_HANDLER_E(name, 0x3F, op1, 0x10 | op2, mask, PPC_NONE, PPC2_DFP), \ 31GEN_HANDLER_E(name, 0x3F, op1, 0x18 | op2, mask, PPC_NONE, PPC2_DFP) 32 33#define GEN_DFP_T_A_B_Rc(name, op1, op2) \ 34_GEN_DFP_LONG(name, op1, op2, 0x00000000) 35 36#define GEN_DFP_Tp_Ap_Bp_Rc(name, op1, op2) \ 37_GEN_DFP_QUAD(name, op1, op2, 0x00210800) 38 39#define GEN_DFP_Tp_A_Bp_Rc(name, op1, op2) \ 40_GEN_DFP_QUAD(name, op1, op2, 0x00200800) 41 42#define GEN_DFP_T_B_Rc(name, op1, op2) \ 43_GEN_DFP_LONG(name, op1, op2, 0x001F0000) 44 45#define GEN_DFP_Tp_Bp_Rc(name, op1, op2) \ 46_GEN_DFP_QUAD(name, op1, op2, 0x003F0800) 47 48#define GEN_DFP_Tp_B_Rc(name, op1, op2) \ 49_GEN_DFP_QUAD(name, op1, op2, 0x003F0000) 50 51#define GEN_DFP_T_Bp_Rc(name, op1, op2) \ 52_GEN_DFP_QUAD(name, op1, op2, 0x001F0800) 53 54#define GEN_DFP_BF_A_B(name, op1, op2) \ 55_GEN_DFP_LONG(name, op1, op2, 0x00000001) 56 57#define GEN_DFP_BF_A_B_300(name, op1, op2) \ 58_GEN_DFP_LONG_300(name, op1, op2, 0x00400001) 59 60#define GEN_DFP_BF_Ap_Bp(name, op1, op2) \ 61_GEN_DFP_QUAD(name, op1, op2, 0x00610801) 62 63#define GEN_DFP_BF_A_Bp(name, op1, op2) \ 64_GEN_DFP_QUAD(name, op1, op2, 0x00600801) 65 66#define GEN_DFP_BF_A_Bp_300(name, op1, op2) \ 67_GEN_DFP_QUAD_300(name, op1, op2, 0x00400001) 68 69#define GEN_DFP_BF_A_DCM(name, op1, op2) \ 70_GEN_DFP_LONGx2(name, op1, op2, 0x00600001) 71 72#define GEN_DFP_BF_Ap_DCM(name, op1, op2) \ 73_GEN_DFP_QUADx2(name, op1, op2, 0x00610001) 74 75#define GEN_DFP_T_A_B_RMC_Rc(name, op1, op2) \ 76_GEN_DFP_LONGx4(name, op1, op2, 0x00000000) 77 78#define GEN_DFP_Tp_Ap_Bp_RMC_Rc(name, op1, op2) \ 79_GEN_DFP_QUADx4(name, op1, op2, 0x02010800) 80 81#define GEN_DFP_Tp_A_Bp_RMC_Rc(name, op1, op2) \ 82_GEN_DFP_QUADx4(name, op1, op2, 0x02000800) 83 84#define GEN_DFP_TE_T_B_RMC_Rc(name, op1, op2) \ 85_GEN_DFP_LONGx4(name, op1, op2, 0x00000000) 86 87#define GEN_DFP_TE_Tp_Bp_RMC_Rc(name, op1, op2) \ 88_GEN_DFP_QUADx4(name, op1, op2, 0x00200800) 89 90#define GEN_DFP_R_T_B_RMC_Rc(name, op1, op2) \ 91_GEN_DFP_LONGx4(name, op1, op2, 0x001E0000) 92 93#define GEN_DFP_R_Tp_Bp_RMC_Rc(name, op1, op2) \ 94_GEN_DFP_QUADx4(name, op1, op2, 0x003E0800) 95 96#define GEN_DFP_SP_T_B_Rc(name, op1, op2) \ 97_GEN_DFP_LONG(name, op1, op2, 0x00070000) 98 99#define GEN_DFP_SP_Tp_Bp_Rc(name, op1, op2) \ 100_GEN_DFP_QUAD(name, op1, op2, 0x00270800) 101 102#define GEN_DFP_S_T_B_Rc(name, op1, op2) \ 103_GEN_DFP_LONG(name, op1, op2, 0x000F0000) 104 105#define GEN_DFP_S_Tp_Bp_Rc(name, op1, op2) \ 106_GEN_DFP_QUAD(name, op1, op2, 0x002F0800) 107 108#define GEN_DFP_T_A_SH_Rc(name, op1, op2) \ 109_GEN_DFP_LONGx2(name, op1, op2, 0x00000000) 110 111#define GEN_DFP_Tp_Ap_SH_Rc(name, op1, op2) \ 112_GEN_DFP_QUADx2(name, op1, op2, 0x00210000) 113 114GEN_DFP_T_A_B_Rc(dadd, 0x02, 0x00), 115GEN_DFP_Tp_Ap_Bp_Rc(daddq, 0x02, 0x00), 116GEN_DFP_T_A_B_Rc(dsub, 0x02, 0x10), 117GEN_DFP_Tp_Ap_Bp_Rc(dsubq, 0x02, 0x10), 118GEN_DFP_T_A_B_Rc(dmul, 0x02, 0x01), 119GEN_DFP_Tp_Ap_Bp_Rc(dmulq, 0x02, 0x01), 120GEN_DFP_T_A_B_Rc(ddiv, 0x02, 0x11), 121GEN_DFP_Tp_Ap_Bp_Rc(ddivq, 0x02, 0x11), 122GEN_DFP_BF_A_B(dcmpu, 0x02, 0x14), 123GEN_DFP_BF_Ap_Bp(dcmpuq, 0x02, 0x14), 124GEN_DFP_BF_A_B(dcmpo, 0x02, 0x04), 125GEN_DFP_BF_Ap_Bp(dcmpoq, 0x02, 0x04), 126GEN_DFP_BF_A_DCM(dtstdc, 0x02, 0x06), 127GEN_DFP_BF_Ap_DCM(dtstdcq, 0x02, 0x06), 128GEN_DFP_BF_A_DCM(dtstdg, 0x02, 0x07), 129GEN_DFP_BF_Ap_DCM(dtstdgq, 0x02, 0x07), 130GEN_DFP_BF_A_B(dtstex, 0x02, 0x05), 131GEN_DFP_BF_Ap_Bp(dtstexq, 0x02, 0x05), 132GEN_DFP_BF_A_B(dtstsf, 0x02, 0x15), 133GEN_DFP_BF_A_Bp(dtstsfq, 0x02, 0x15), 134GEN_DFP_BF_A_B_300(dtstsfi, 0x03, 0x15), 135GEN_DFP_BF_A_Bp_300(dtstsfiq, 0x03, 0x15), 136GEN_DFP_TE_T_B_RMC_Rc(dquai, 0x03, 0x02), 137GEN_DFP_TE_Tp_Bp_RMC_Rc(dquaiq, 0x03, 0x02), 138GEN_DFP_T_A_B_RMC_Rc(dqua, 0x03, 0x00), 139GEN_DFP_Tp_Ap_Bp_RMC_Rc(dquaq, 0x03, 0x00), 140GEN_DFP_T_A_B_RMC_Rc(drrnd, 0x03, 0x01), 141GEN_DFP_Tp_A_Bp_RMC_Rc(drrndq, 0x03, 0x01), 142GEN_DFP_R_T_B_RMC_Rc(drintx, 0x03, 0x03), 143GEN_DFP_R_Tp_Bp_RMC_Rc(drintxq, 0x03, 0x03), 144GEN_DFP_R_T_B_RMC_Rc(drintn, 0x03, 0x07), 145GEN_DFP_R_Tp_Bp_RMC_Rc(drintnq, 0x03, 0x07), 146GEN_DFP_T_B_Rc(dctdp, 0x02, 0x08), 147GEN_DFP_Tp_B_Rc(dctqpq, 0x02, 0x08), 148GEN_DFP_T_B_Rc(drsp, 0x02, 0x18), 149GEN_DFP_Tp_Bp_Rc(drdpq, 0x02, 0x18), 150GEN_DFP_T_B_Rc(dcffix, 0x02, 0x19), 151GEN_DFP_Tp_B_Rc(dcffixq, 0x02, 0x19), 152GEN_DFP_T_B_Rc(dctfix, 0x02, 0x09), 153GEN_DFP_T_Bp_Rc(dctfixq, 0x02, 0x09), 154GEN_DFP_SP_T_B_Rc(ddedpd, 0x02, 0x0a), 155GEN_DFP_SP_Tp_Bp_Rc(ddedpdq, 0x02, 0x0a), 156GEN_DFP_S_T_B_Rc(denbcd, 0x02, 0x1a), 157GEN_DFP_S_Tp_Bp_Rc(denbcdq, 0x02, 0x1a), 158GEN_DFP_T_B_Rc(dxex, 0x02, 0x0b), 159GEN_DFP_T_Bp_Rc(dxexq, 0x02, 0x0b), 160GEN_DFP_T_A_B_Rc(diex, 0x02, 0x1b), 161GEN_DFP_Tp_A_Bp_Rc(diexq, 0x02, 0x1b), 162GEN_DFP_T_A_SH_Rc(dscli, 0x02, 0x02), 163GEN_DFP_Tp_Ap_SH_Rc(dscliq, 0x02, 0x02), 164GEN_DFP_T_A_SH_Rc(dscri, 0x02, 0x03), 165GEN_DFP_Tp_Ap_SH_Rc(dscriq, 0x02, 0x03),