void WB_Led_Dev_t::clock_lo ( dat_t<1> reset ) { val_t T0; { T0 = WB_Led_Dev__io_bus_sel.values[0] & WB_Led_Dev__io_bus_we.values[0];} val_t T1; { T1 = TERNARY_1(T0, WB_Led_Dev__io_bus_dat2.values[0], WB_Led_Dev__data_out.values[0]);} val_t T2; { T2 = WB_Led_Dev__led_data.values[0] | 0x0L << 8;} val_t T3; { T3 = T0 ^ 0x1L;} val_t T4; { T4 = T3 & WB_Led_Dev__io_bus_sel.values[0];} val_t T5; { T5 = TERNARY_1(T4, T2, T1);} val_t T6; { T6 = T0 | WB_Led_Dev__io_bus_sel.values[0];} val_t T7; { T7 = T6 ^ 0x1L;} val_t T8; { T8 = TERNARY(T7, 0x0L, T5);} { T9.values[0] = TERNARY(reset.values[0], 0x0L, T8);} { WB_Led_Dev__io_bus_dat4.values[0] = WB_Led_Dev__data_out.values[0];} { WB_Led_Dev__io_bus_ack.values[0] = 0x1L;} val_t T10; { T10 = WB_Led_Dev__led_data.values[0] | 0x0L << 8;} val_t T11; { T11 = TERNARY_1(T0, WB_Led_Dev__io_bus_dat2.values[0], T10);} val_t T12; { T12 = TERNARY(reset.values[0], 0x0L, T11);} { T13.values[0] = T12;} T13.values[0] = T13.values[0] & 0xffL; { WB_Led_Dev__io_LED.values[0] = WB_Led_Dev__led_data.values[0];} }
void WB_Seven_Dev_t::clock_lo ( dat_t<1> reset ) { val_t T0; { T0 = WB_Seven_Dev__io_bus_sel.values[0] & WB_Seven_Dev__io_bus_we.values[0]; } val_t T1; { T1 = TERNARY_1(T0, WB_Seven_Dev__io_bus_dat2.values[0], WB_Seven_Dev__data_out.values[0]); } val_t T2; { T2 = T0 ^ 0x1L; } val_t T3; { T3 = T2 & WB_Seven_Dev__io_bus_sel.values[0]; } val_t T4; { T4 = TERNARY_1(T3, WB_Seven_Dev__disp_data.values[0], T1); } val_t T5; { T5 = T0 | WB_Seven_Dev__io_bus_sel.values[0]; } val_t T6; { T6 = T5 ^ 0x1L; } val_t T7; { T7 = TERNARY(T6, 0x0L, T4); } { T8.values[0] = TERNARY(reset.values[0], 0x0L, T7); } { WB_Seven_Dev__io_bus_dat4.values[0] = WB_Seven_Dev__data_out.values[0]; } { WB_Seven_Dev__io_bus_ack.values[0] = 0x1L; } val_t T9; { T9 = TERNARY_1(T0, WB_Seven_Dev__io_bus_dat2.values[0], WB_Seven_Dev__disp_data.values[0]); } { T10.values[0] = TERNARY(reset.values[0], 0x0L, T9); } { WB_Seven_Dev__io_DISP_NUM.values[0] = WB_Seven_Dev__disp_data.values[0]; } }
void WhenSuite_SwitchClassComp_1_t::clock_lo ( dat_t<1> reset ) { val_t T0__w0; { T0__w0 = WhenSuite_SwitchClassComp_1__io_in0.values[0]&0xf3L; } val_t T1__w0; T1__w0 = T0__w0 == 0x51L; val_t T2__w0; { T2__w0 = TERNARY(T1__w0, WhenSuite_SwitchClassComp_1__io_in1.values[0], WhenSuite_SwitchClassComp_1__io_in0.values[0]); } { WhenSuite_SwitchClassComp_1__io_out.values[0] = T2__w0; } }
void NameSuite_DebugComp_1_t::clock_lo ( dat_t<1> reset, bool assert_fire ) { { NameSuite_DebugComp_1_dpath__io_ctrl_wb_wen.values[0] = NameSuite_DebugComp_1__io_ctrl_wb_wen.values[0];} { NameSuite_DebugComp_1_dpath__wb_wen.values[0] = NameSuite_DebugComp_1_dpath__io_ctrl_wb_wen.values[0] | NameSuite_DebugComp_1_dpath__wb_reg_ll_wb.values[0];} val_t T0; { T0 = TERNARY_1(NameSuite_DebugComp_1_dpath__wb_wen.values[0], NameSuite_DebugComp_1_dpath__io_ctrl_wb_wen.values[0], NameSuite_DebugComp_1_dpath__wb_reg_ll_wb.values[0]);} { NameSuite_DebugComp_1_dpath__reset.values[0] = reset.values[0];} { T1.values[0] = TERNARY(NameSuite_DebugComp_1_dpath__reset.values[0], 0x0L, T0);} { NameSuite_DebugComp_1_dpath__io_ctrl_out.values[0] = NameSuite_DebugComp_1_dpath__wb_reg_ll_wb.values[0];} { NameSuite_DebugComp_1__io_ctrl_out.values[0] = NameSuite_DebugComp_1_dpath__io_ctrl_out.values[0];} }
void DelaySuite_SeqReadBundle_1_t::clock_lo ( dat_t<1> reset ) { val_t T3__w0; { T3__w0 = DelaySuite_SeqReadBundle_1__mem.get(R1.values[0], 0); } val_t T4__w0; { T4__w0 = T3__w0 >> 48; } T4__w0 = T4__w0 & 255; { DelaySuite_SeqReadBundle_1__io_out_a_a.values[0] = T4__w0; } val_t T5__w0; { T5__w0 = T3__w0 >> 32; } T5__w0 = T5__w0 & 65535; { DelaySuite_SeqReadBundle_1__io_out_a_b.values[0] = T5__w0; } { T0.values[0] = TERNARY(DelaySuite_SeqReadBundle_1__io_ren.values[0], DelaySuite_SeqReadBundle_1__io_raddr.values[0], R1.values[0]); } val_t T6__w0; { T6__w0 = DelaySuite_SeqReadBundle_1__io_in_a_b.values[0] | DelaySuite_SeqReadBundle_1__io_in_a_a.values[0] << 16; } val_t T7__w0; { T7__w0 = DelaySuite_SeqReadBundle_1__io_in_a_b_.values[0] | T6__w0 << 32; } { T2.values[0] = T7__w0; } val_t T8__w0; { T8__w0 = T3__w0; } T8__w0 = T8__w0 & 4294967295; { DelaySuite_SeqReadBundle_1__io_out_a_b_.values[0] = T8__w0; } }
void ALU_t::clock_lo ( dat_t<1> reset ) { val_t T0; T0 = ALU__io_in_a.values[0]<ALU__io_in_b.values[0]; val_t T1; { T1 = T0 | 0x0L << 1;} val_t T2; T2 = ALU__io_alu_op.values[0] == 0x7L; val_t T3; { T3 = TERNARY(T2, T1, 0x0L);} val_t T4; { T4 = ALU__io_in_a.values[0]-ALU__io_in_b.values[0];} T4 = T4 & 0xffffffffL; val_t T5; T5 = ALU__io_alu_op.values[0] == 0x6L; val_t T6; { T6 = TERNARY_1(T5, T4, T3);} val_t T7; { T7 = ALU__io_in_b.values[0];} T7 = T7 & 0x1fL; val_t T8; T8 = ALU__io_in_a.values[0] >> T7; val_t T9; T9 = ALU__io_alu_op.values[0] == 0x5L; val_t T10; { T10 = TERNARY_1(T9, T8, T6);} val_t T11; { T11 = ALU__io_in_a.values[0] | ALU__io_in_b.values[0];} val_t T12; { T12 = ~T11;} T12 = T12 & 0xffffffffL; val_t T13; T13 = ALU__io_alu_op.values[0] == 0x4L; val_t T14; { T14 = TERNARY_1(T13, T12, T10);} val_t T15; { T15 = ALU__io_in_a.values[0] ^ ALU__io_in_b.values[0];} val_t T16; T16 = ALU__io_alu_op.values[0] == 0x3L; val_t T17; { T17 = TERNARY_1(T16, T15, T14);} val_t T18; { T18 = ALU__io_in_a.values[0]+ALU__io_in_b.values[0];} T18 = T18 & 0xffffffffL; val_t T19; T19 = ALU__io_alu_op.values[0] == 0x2L; val_t T20; { T20 = TERNARY_1(T19, T18, T17);} val_t T21; { T21 = ALU__io_in_a.values[0] | ALU__io_in_b.values[0];} val_t T22; T22 = ALU__io_alu_op.values[0] == 0x1L; val_t T23; { T23 = TERNARY_1(T22, T21, T20);} val_t T24; { T24 = ALU__io_in_a.values[0] & ALU__io_in_b.values[0];} val_t T25; T25 = ALU__io_alu_op.values[0] == 0x0L; val_t T26; { T26 = TERNARY_1(T25, T24, T23);} { ALU__io_out.values[0] = T26;} val_t T27; T27 = ALU__io_out.values[0] != 0x0L; val_t T28; { T28 = T27 ^ 0x1L;} { ALU__io_zero.values[0] = T28;} }
TR(1, 26, TR_IMPACT , IMPACT , "Impact" , 0, 1, 10, BINARY , 0, false, false) TR(1, 27, TR_BRAND_POIS , BRAND_POIS , "Poison Brd", 0, 1, 11, BINARY , 0, false, false) TR(1, 28, TR_BRAND_ACID , BRAND_ACID , "Acid Brand", 0, 1, 12, BINARY , 0, false, false) TR(1, 29, TR_BRAND_ELEC , BRAND_ELEC , "Elec Brand", 0, 1, 13, BINARY , 0, false, false) TR(1, 30, TR_BRAND_FIRE , BRAND_FIRE , "Fire Brand", 0, 1, 14, BINARY , 0, false, false) TR(1, 31, TR_BRAND_COLD , BRAND_COLD , "Cold Brand", 0, 1, 15, BINARY , 0, false, false) TR(2, 0, TR_SUST_STR , SUST_STR , "Sust Str" , 1, 0, 0, BINARY , 0, false, false) TR(2, 1, TR_SUST_INT , SUST_INT , "Sust Int" , 1, 0, 1, BINARY , 0, false, false) TR(2, 2, TR_SUST_WIS , SUST_WIS , "Sust Wis" , 1, 0, 2, BINARY , 0, false, false) TR(2, 3, TR_SUST_DEX , SUST_DEX , "Sust Dex" , 1, 0, 3, BINARY , 0, false, false) TR(2, 4, TR_SUST_CON , SUST_CON , "Sust Con" , 1, 0, 4, BINARY , 0, false, false) TR(2, 5, TR_SUST_CHR , SUST_CHR , "Sust Chr" , 1, 0, 5, BINARY , 0, false, false) TR(2, 6, TR_INVIS , INVIS , "Invisible" , 1, 0, 6, BINARY , 0, false, false) TR(2, 7, TR_LIFE , LIFE , "Mul life" , 1, 0, 7, BINARY , 0, false, false) TR(2, 8, TR_IM_ACID , IM_ACID , "Imm Acid" , 1, 1, 0, TERNARY(2), 1, false, false) TR(2, 9, TR_IM_ELEC , IM_ELEC , "Imm Elec" , 1, 1, 1, TERNARY(2), 1, false, false) TR(2, 10, TR_IM_FIRE , IM_FIRE , "Imm Fire" , 1, 1, 2, TERNARY(2), 1, false, false) TR(2, 11, TR_IM_COLD , IM_COLD , "Imm Cold" , 1, 1, 3, TERNARY(2), 1, false, false) TR(2, 12, TR_SENS_FIRE , SENS_FIRE , "Sens Fire" , 1, 0, 12, BINARY , 0, false, false) TR(2, 13, TR_REFLECT , REFLECT , "Reflect" , 1, 0, 13, BINARY , 0, false, false) TR(2, 14, TR_FREE_ACT , FREE_ACT , "Free Act" , 1, 0, 14, BINARY , 0, false, false) TR(2, 15, TR_HOLD_LIFE , HOLD_LIFE , "Hold Life" , 1, 0, 15, BINARY , 0, false, false) TR(2, 16, TR_RES_ACID , RES_ACID , "Res Acid" , 1, 1, 0, TERNARY(1), 0, false, false) TR(2, 17, TR_RES_ELEC , RES_ELEC , "Res Elec" , 1, 1, 1, TERNARY(1), 0, false, false) TR(2, 18, TR_RES_FIRE , RES_FIRE , "Res Fire" , 1, 1, 2, TERNARY(1), 0, false, false) TR(2, 19, TR_RES_COLD , RES_COLD , "Res Cold" , 1, 1, 3, TERNARY(1), 0, false, false) TR(2, 20, TR_RES_POIS , RES_POIS , "Res Pois" , 1, 1, 4, BINARY , 0, false, false) TR(2, 21, TR_RES_FEAR , RES_FEAR , "Res Fear" , 1, 1, 5, BINARY , 0, false, false) TR(2, 22, TR_RES_LITE , RES_LITE , "Res Light" , 1, 1, 6, BINARY , 0, false, false) TR(2, 23, TR_RES_DARK , RES_DARK , "Res Dark" , 1, 1, 7, BINARY , 0, false, false)
// Taken from VEX/priv/ir_defs.c: function typeOfPrimop // Modified minimally to break dependencies on VEX infrastructure. void typeof_primop(IROp op, IRType *t_dst, IRType *t_arg1, IRType *t_arg2, IRType *t_arg3, IRType *t_arg4) { # define UNARY(_ta1,_td) \ *t_dst = (_td); *t_arg1 = (_ta1); break # define BINARY(_ta1,_ta2,_td) \ *t_dst = (_td); *t_arg1 = (_ta1); *t_arg2 = (_ta2); break # define TERNARY(_ta1,_ta2,_ta3,_td) \ *t_dst = (_td); *t_arg1 = (_ta1); \ *t_arg2 = (_ta2); *t_arg3 = (_ta3); break # define QUATERNARY(_ta1,_ta2,_ta3,_ta4,_td) \ *t_dst = (_td); *t_arg1 = (_ta1); \ *t_arg2 = (_ta2); *t_arg3 = (_ta3); \ *t_arg4 = (_ta4); break # define COMPARISON(_ta) \ *t_dst = Ity_I1; *t_arg1 = *t_arg2 = (_ta); break; # define UNARY_COMPARISON(_ta) \ *t_dst = Ity_I1; *t_arg1 = (_ta); break; /* Rounding mode values are always Ity_I32, encoded as per IRRoundingMode */ const IRType ity_RMode = Ity_I32; *t_dst = Ity_INVALID; *t_arg1 = Ity_INVALID; *t_arg2 = Ity_INVALID; *t_arg3 = Ity_INVALID; *t_arg4 = Ity_INVALID; switch (op) { case Iop_Add8: case Iop_Sub8: case Iop_Mul8: case Iop_Or8: case Iop_And8: case Iop_Xor8: BINARY(Ity_I8,Ity_I8, Ity_I8); case Iop_Add16: case Iop_Sub16: case Iop_Mul16: case Iop_Or16: case Iop_And16: case Iop_Xor16: BINARY(Ity_I16,Ity_I16, Ity_I16); case Iop_CmpORD32U: case Iop_CmpORD32S: case Iop_Add32: case Iop_Sub32: case Iop_Mul32: case Iop_Or32: case Iop_And32: case Iop_Xor32: case Iop_Max32U: case Iop_QAdd32S: case Iop_QSub32S: case Iop_Add16x2: case Iop_Sub16x2: case Iop_QAdd16Sx2: case Iop_QAdd16Ux2: case Iop_QSub16Sx2: case Iop_QSub16Ux2: case Iop_HAdd16Ux2: case Iop_HAdd16Sx2: case Iop_HSub16Ux2: case Iop_HSub16Sx2: case Iop_Add8x4: case Iop_Sub8x4: case Iop_QAdd8Sx4: case Iop_QAdd8Ux4: case Iop_QSub8Sx4: case Iop_QSub8Ux4: case Iop_HAdd8Ux4: case Iop_HAdd8Sx4: case Iop_HSub8Ux4: case Iop_HSub8Sx4: case Iop_Sad8Ux4: BINARY(Ity_I32,Ity_I32, Ity_I32); case Iop_Add64: case Iop_Sub64: case Iop_Mul64: case Iop_Or64: case Iop_And64: case Iop_Xor64: case Iop_CmpORD64U: case Iop_CmpORD64S: case Iop_Avg8Ux8: case Iop_Avg16Ux4: case Iop_Add8x8: case Iop_Add16x4: case Iop_Add32x2: case Iop_Add32Fx2: case Iop_Sub32Fx2: case Iop_CmpEQ8x8: case Iop_CmpEQ16x4: case Iop_CmpEQ32x2: case Iop_CmpGT8Sx8: case Iop_CmpGT16Sx4: case Iop_CmpGT32Sx2: case Iop_CmpGT8Ux8: case Iop_CmpGT16Ux4: case Iop_CmpGT32Ux2: case Iop_CmpGT32Fx2: case Iop_CmpEQ32Fx2: case Iop_CmpGE32Fx2: case Iop_InterleaveHI8x8: case Iop_InterleaveLO8x8: case Iop_InterleaveHI16x4: case Iop_InterleaveLO16x4: case Iop_InterleaveHI32x2: case Iop_InterleaveLO32x2: case Iop_CatOddLanes8x8: case Iop_CatEvenLanes8x8: case Iop_CatOddLanes16x4: case Iop_CatEvenLanes16x4: case Iop_InterleaveOddLanes8x8: case Iop_InterleaveEvenLanes8x8: case Iop_InterleaveOddLanes16x4: case Iop_InterleaveEvenLanes16x4: case Iop_Perm8x8: case Iop_Max8Ux8: case Iop_Max16Ux4: case Iop_Max32Ux2: case Iop_Max8Sx8: case Iop_Max16Sx4: case Iop_Max32Sx2: case Iop_Max32Fx2: case Iop_Min32Fx2: case Iop_PwMax32Fx2: case Iop_PwMin32Fx2: case Iop_Min8Ux8: case Iop_Min16Ux4: case Iop_Min32Ux2: case Iop_Min8Sx8: case Iop_Min16Sx4: case Iop_Min32Sx2: case Iop_PwMax8Ux8: case Iop_PwMax16Ux4: case Iop_PwMax32Ux2: case Iop_PwMax8Sx8: case Iop_PwMax16Sx4: case Iop_PwMax32Sx2: case Iop_PwMin8Ux8: case Iop_PwMin16Ux4: case Iop_PwMin32Ux2: case Iop_PwMin8Sx8: case Iop_PwMin16Sx4: case Iop_PwMin32Sx2: case Iop_Mul8x8: case Iop_Mul16x4: case Iop_Mul32x2: case Iop_Mul32Fx2: case Iop_PolynomialMul8x8: case Iop_MulHi16Sx4: case Iop_MulHi16Ux4: case Iop_QDMulHi16Sx4: case Iop_QDMulHi32Sx2: case Iop_QRDMulHi16Sx4: case Iop_QRDMulHi32Sx2: case Iop_QAdd8Sx8: case Iop_QAdd16Sx4: case Iop_QAdd32Sx2: case Iop_QAdd64Sx1: case Iop_QAdd8Ux8: case Iop_QAdd16Ux4: case Iop_QAdd32Ux2: case Iop_QAdd64Ux1: case Iop_PwAdd8x8: case Iop_PwAdd16x4: case Iop_PwAdd32x2: case Iop_PwAdd32Fx2: case Iop_QNarrowBin32Sto16Sx4: case Iop_QNarrowBin16Sto8Sx8: case Iop_QNarrowBin16Sto8Ux8: case Iop_NarrowBin16to8x8: case Iop_NarrowBin32to16x4: case Iop_Sub8x8: case Iop_Sub16x4: case Iop_Sub32x2: case Iop_QSub8Sx8: case Iop_QSub16Sx4: case Iop_QSub32Sx2: case Iop_QSub64Sx1: case Iop_QSub8Ux8: case Iop_QSub16Ux4: case Iop_QSub32Ux2: case Iop_QSub64Ux1: case Iop_Shl8x8: case Iop_Shl16x4: case Iop_Shl32x2: case Iop_Shr8x8: case Iop_Shr16x4: case Iop_Shr32x2: case Iop_Sar8x8: case Iop_Sar16x4: case Iop_Sar32x2: case Iop_Sal8x8: case Iop_Sal16x4: case Iop_Sal32x2: case Iop_Sal64x1: case Iop_QShl8x8: case Iop_QShl16x4: case Iop_QShl32x2: case Iop_QShl64x1: case Iop_QSal8x8: case Iop_QSal16x4: case Iop_QSal32x2: case Iop_QSal64x1: case Iop_Recps32Fx2: case Iop_Rsqrts32Fx2: BINARY(Ity_I64,Ity_I64, Ity_I64); case Iop_ShlN32x2: case Iop_ShlN16x4: case Iop_ShlN8x8: case Iop_ShrN32x2: case Iop_ShrN16x4: case Iop_ShrN8x8: case Iop_SarN32x2: case Iop_SarN16x4: case Iop_SarN8x8: case Iop_QShlN8x8: case Iop_QShlN16x4: case Iop_QShlN32x2: case Iop_QShlN64x1: case Iop_QShlN8Sx8: case Iop_QShlN16Sx4: case Iop_QShlN32Sx2: case Iop_QShlN64Sx1: case Iop_QSalN8x8: case Iop_QSalN16x4: case Iop_QSalN32x2: case Iop_QSalN64x1: BINARY(Ity_I64,Ity_I8, Ity_I64); case Iop_Shl8: case Iop_Shr8: case Iop_Sar8: BINARY(Ity_I8,Ity_I8, Ity_I8); case Iop_Shl16: case Iop_Shr16: case Iop_Sar16: BINARY(Ity_I16,Ity_I8, Ity_I16); case Iop_Shl32: case Iop_Shr32: case Iop_Sar32: BINARY(Ity_I32,Ity_I8, Ity_I32); case Iop_Shl64: case Iop_Shr64: case Iop_Sar64: BINARY(Ity_I64,Ity_I8, Ity_I64); case Iop_Not8: UNARY(Ity_I8, Ity_I8); case Iop_Not16: UNARY(Ity_I16, Ity_I16); case Iop_Not32: case Iop_CmpNEZ16x2: case Iop_CmpNEZ8x4: UNARY(Ity_I32, Ity_I32); case Iop_Not64: case Iop_CmpNEZ32x2: case Iop_CmpNEZ16x4: case Iop_CmpNEZ8x8: case Iop_Cnt8x8: case Iop_Clz8Sx8: case Iop_Clz16Sx4: case Iop_Clz32Sx2: case Iop_Cls8Sx8: case Iop_Cls16Sx4: case Iop_Cls32Sx2: case Iop_PwAddL8Ux8: case Iop_PwAddL16Ux4: case Iop_PwAddL32Ux2: case Iop_PwAddL8Sx8: case Iop_PwAddL16Sx4: case Iop_PwAddL32Sx2: case Iop_Reverse64_8x8: case Iop_Reverse64_16x4: case Iop_Reverse64_32x2: case Iop_Reverse32_8x8: case Iop_Reverse32_16x4: case Iop_Reverse16_8x8: case Iop_FtoI32Sx2_RZ: case Iop_FtoI32Ux2_RZ: case Iop_I32StoFx2: case Iop_I32UtoFx2: case Iop_Recip32x2: case Iop_Recip32Fx2: case Iop_Abs32Fx2: case Iop_Rsqrte32Fx2: case Iop_Rsqrte32x2: case Iop_Neg32Fx2: case Iop_Abs8x8: case Iop_Abs16x4: case Iop_Abs32x2: UNARY(Ity_I64, Ity_I64); case Iop_CmpEQ8: case Iop_CmpNE8: case Iop_CasCmpEQ8: case Iop_CasCmpNE8: COMPARISON(Ity_I8); case Iop_CmpEQ16: case Iop_CmpNE16: case Iop_CasCmpEQ16: case Iop_CasCmpNE16: COMPARISON(Ity_I16); case Iop_CmpEQ32: case Iop_CmpNE32: case Iop_CasCmpEQ32: case Iop_CasCmpNE32: case Iop_CmpLT32S: case Iop_CmpLE32S: case Iop_CmpLT32U: case Iop_CmpLE32U: COMPARISON(Ity_I32); case Iop_CmpEQ64: case Iop_CmpNE64: case Iop_CasCmpEQ64: case Iop_CasCmpNE64: case Iop_CmpLT64S: case Iop_CmpLE64S: case Iop_CmpLT64U: case Iop_CmpLE64U: COMPARISON(Ity_I64); case Iop_CmpNEZ8: UNARY_COMPARISON(Ity_I8); case Iop_CmpNEZ16: UNARY_COMPARISON(Ity_I16); case Iop_CmpNEZ32: UNARY_COMPARISON(Ity_I32); case Iop_CmpNEZ64: UNARY_COMPARISON(Ity_I64); case Iop_Left8: UNARY(Ity_I8, Ity_I8); case Iop_Left16: UNARY(Ity_I16,Ity_I16); case Iop_CmpwNEZ32: case Iop_Left32: UNARY(Ity_I32,Ity_I32); case Iop_CmpwNEZ64: case Iop_Left64: UNARY(Ity_I64,Ity_I64); case Iop_MullU8: case Iop_MullS8: BINARY(Ity_I8,Ity_I8, Ity_I16); case Iop_MullU16: case Iop_MullS16: BINARY(Ity_I16,Ity_I16, Ity_I32); case Iop_MullU32: case Iop_MullS32: BINARY(Ity_I32,Ity_I32, Ity_I64); case Iop_MullU64: case Iop_MullS64: BINARY(Ity_I64,Ity_I64, Ity_I128); case Iop_Clz32: case Iop_Ctz32: UNARY(Ity_I32, Ity_I32); case Iop_Clz64: case Iop_Ctz64: UNARY(Ity_I64, Ity_I64); case Iop_DivU32: case Iop_DivS32: case Iop_DivU32E: case Iop_DivS32E: BINARY(Ity_I32,Ity_I32, Ity_I32); case Iop_DivU64: case Iop_DivS64: case Iop_DivS64E: case Iop_DivU64E: BINARY(Ity_I64,Ity_I64, Ity_I64); case Iop_DivModU64to32: case Iop_DivModS64to32: BINARY(Ity_I64,Ity_I32, Ity_I64); case Iop_DivModU128to64: case Iop_DivModS128to64: BINARY(Ity_I128,Ity_I64, Ity_I128); case Iop_DivModS64to64: BINARY(Ity_I64,Ity_I64, Ity_I128); case Iop_16HIto8: case Iop_16to8: UNARY(Ity_I16, Ity_I8); case Iop_8HLto16: BINARY(Ity_I8,Ity_I8, Ity_I16); case Iop_32HIto16: case Iop_32to16: UNARY(Ity_I32, Ity_I16); case Iop_16HLto32: BINARY(Ity_I16,Ity_I16, Ity_I32); case Iop_64HIto32: case Iop_64to32: UNARY(Ity_I64, Ity_I32); case Iop_32HLto64: BINARY(Ity_I32,Ity_I32, Ity_I64); case Iop_128HIto64: case Iop_128to64: UNARY(Ity_I128, Ity_I64); case Iop_64HLto128: BINARY(Ity_I64,Ity_I64, Ity_I128); case Iop_Not1: UNARY(Ity_I1, Ity_I1); case Iop_1Uto8: UNARY(Ity_I1, Ity_I8); case Iop_1Sto8: UNARY(Ity_I1, Ity_I8); case Iop_1Sto16: UNARY(Ity_I1, Ity_I16); case Iop_1Uto32: case Iop_1Sto32: UNARY(Ity_I1, Ity_I32); case Iop_1Sto64: case Iop_1Uto64: UNARY(Ity_I1, Ity_I64); case Iop_32to1: UNARY(Ity_I32, Ity_I1); case Iop_64to1: UNARY(Ity_I64, Ity_I1); case Iop_8Uto32: case Iop_8Sto32: UNARY(Ity_I8, Ity_I32); case Iop_8Uto16: case Iop_8Sto16: UNARY(Ity_I8, Ity_I16); case Iop_16Uto32: case Iop_16Sto32: UNARY(Ity_I16, Ity_I32); case Iop_32Sto64: case Iop_32Uto64: UNARY(Ity_I32, Ity_I64); case Iop_8Uto64: case Iop_8Sto64: UNARY(Ity_I8, Ity_I64); case Iop_16Uto64: case Iop_16Sto64: UNARY(Ity_I16, Ity_I64); case Iop_64to16: UNARY(Ity_I64, Ity_I16); case Iop_32to8: UNARY(Ity_I32, Ity_I8); case Iop_64to8: UNARY(Ity_I64, Ity_I8); case Iop_AddF64: case Iop_SubF64: case Iop_MulF64: case Iop_DivF64: case Iop_AddF64r32: case Iop_SubF64r32: case Iop_MulF64r32: case Iop_DivF64r32: TERNARY(ity_RMode,Ity_F64,Ity_F64, Ity_F64); case Iop_AddF32: case Iop_SubF32: case Iop_MulF32: case Iop_DivF32: TERNARY(ity_RMode,Ity_F32,Ity_F32, Ity_F32); case Iop_NegF64: case Iop_AbsF64: UNARY(Ity_F64, Ity_F64); case Iop_NegF32: case Iop_AbsF32: UNARY(Ity_F32, Ity_F32); case Iop_SqrtF64: BINARY(ity_RMode,Ity_F64, Ity_F64); case Iop_SqrtF32: case Iop_RoundF32toInt: BINARY(ity_RMode,Ity_F32, Ity_F32); case Iop_CmpF32: BINARY(Ity_F32,Ity_F32, Ity_I32); case Iop_CmpF64: BINARY(Ity_F64,Ity_F64, Ity_I32); case Iop_CmpF128: BINARY(Ity_F128,Ity_F128, Ity_I32); case Iop_F64toI16S: BINARY(ity_RMode,Ity_F64, Ity_I16); case Iop_F64toI32S: BINARY(ity_RMode,Ity_F64, Ity_I32); case Iop_F64toI64S: case Iop_F64toI64U: BINARY(ity_RMode,Ity_F64, Ity_I64); case Iop_F64toI32U: BINARY(ity_RMode,Ity_F64, Ity_I32); case Iop_I32StoF64: UNARY(Ity_I32, Ity_F64); case Iop_I64StoF64: BINARY(ity_RMode,Ity_I64, Ity_F64); case Iop_I64UtoF64: BINARY(ity_RMode,Ity_I64, Ity_F64); case Iop_I64UtoF32: BINARY(ity_RMode,Ity_I64, Ity_F32); case Iop_I32UtoF64: UNARY(Ity_I32, Ity_F64); case Iop_F32toI32S: BINARY(ity_RMode,Ity_F32, Ity_I32); case Iop_F32toI64S: BINARY(ity_RMode,Ity_F32, Ity_I64); case Iop_F32toI32U: BINARY(ity_RMode,Ity_F32, Ity_I32); case Iop_F32toI64U: BINARY(ity_RMode,Ity_F32, Ity_I64); case Iop_I32UtoF32: BINARY(ity_RMode,Ity_I32, Ity_F32); case Iop_I32StoF32: BINARY(ity_RMode,Ity_I32, Ity_F32); case Iop_I64StoF32: BINARY(ity_RMode,Ity_I64, Ity_F32); case Iop_F32toF64: UNARY(Ity_F32, Ity_F64); case Iop_F64toF32: BINARY(ity_RMode,Ity_F64, Ity_F32); case Iop_ReinterpI64asF64: UNARY(Ity_I64, Ity_F64); case Iop_ReinterpF64asI64: UNARY(Ity_F64, Ity_I64); case Iop_ReinterpI32asF32: UNARY(Ity_I32, Ity_F32); case Iop_ReinterpF32asI32: UNARY(Ity_F32, Ity_I32); case Iop_AtanF64: case Iop_Yl2xF64: case Iop_Yl2xp1F64: case Iop_ScaleF64: case Iop_PRemF64: case Iop_PRem1F64: TERNARY(ity_RMode,Ity_F64,Ity_F64, Ity_F64); case Iop_PRemC3210F64: case Iop_PRem1C3210F64: TERNARY(ity_RMode,Ity_F64,Ity_F64, Ity_I32); case Iop_SinF64: case Iop_CosF64: case Iop_TanF64: case Iop_2xm1F64: case Iop_RoundF64toInt: BINARY(ity_RMode,Ity_F64, Ity_F64); case Iop_MAddF64: case Iop_MSubF64: case Iop_MAddF64r32: case Iop_MSubF64r32: QUATERNARY(ity_RMode,Ity_F64,Ity_F64,Ity_F64, Ity_F64); case Iop_Est5FRSqrt: case Iop_RoundF64toF64_NEAREST: case Iop_RoundF64toF64_NegINF: case Iop_RoundF64toF64_PosINF: case Iop_RoundF64toF64_ZERO: UNARY(Ity_F64, Ity_F64); case Iop_RoundF64toF32: BINARY(ity_RMode,Ity_F64, Ity_F64); case Iop_TruncF64asF32: UNARY(Ity_F64, Ity_F32); case Iop_I32UtoFx4: case Iop_I32StoFx4: case Iop_QFtoI32Ux4_RZ: case Iop_QFtoI32Sx4_RZ: case Iop_FtoI32Ux4_RZ: case Iop_FtoI32Sx4_RZ: case Iop_RoundF32x4_RM: case Iop_RoundF32x4_RP: case Iop_RoundF32x4_RN: case Iop_RoundF32x4_RZ: case Iop_Abs32Fx4: case Iop_Rsqrte32Fx4: case Iop_Rsqrte32x4: UNARY(Ity_V128, Ity_V128); case Iop_64HLtoV128: BINARY(Ity_I64,Ity_I64, Ity_V128); case Iop_V128to64: case Iop_V128HIto64: case Iop_NarrowUn16to8x8: case Iop_NarrowUn32to16x4: case Iop_NarrowUn64to32x2: case Iop_QNarrowUn16Uto8Ux8: case Iop_QNarrowUn32Uto16Ux4: case Iop_QNarrowUn64Uto32Ux2: case Iop_QNarrowUn16Sto8Sx8: case Iop_QNarrowUn32Sto16Sx4: case Iop_QNarrowUn64Sto32Sx2: case Iop_QNarrowUn16Sto8Ux8: case Iop_QNarrowUn32Sto16Ux4: case Iop_QNarrowUn64Sto32Ux2: case Iop_F32toF16x4: UNARY(Ity_V128, Ity_I64); case Iop_Widen8Uto16x8: case Iop_Widen16Uto32x4: case Iop_Widen32Uto64x2: case Iop_Widen8Sto16x8: case Iop_Widen16Sto32x4: case Iop_Widen32Sto64x2: case Iop_F16toF32x4: UNARY(Ity_I64, Ity_V128); case Iop_V128to32: UNARY(Ity_V128, Ity_I32); case Iop_32UtoV128: UNARY(Ity_I32, Ity_V128); case Iop_64UtoV128: UNARY(Ity_I64, Ity_V128); case Iop_SetV128lo32: BINARY(Ity_V128,Ity_I32, Ity_V128); case Iop_SetV128lo64: BINARY(Ity_V128,Ity_I64, Ity_V128); case Iop_Dup8x16: UNARY(Ity_I8, Ity_V128); case Iop_Dup16x8: UNARY(Ity_I16, Ity_V128); case Iop_Dup32x4: UNARY(Ity_I32, Ity_V128); case Iop_Dup8x8: UNARY(Ity_I8, Ity_I64); case Iop_Dup16x4: UNARY(Ity_I16, Ity_I64); case Iop_Dup32x2: UNARY(Ity_I32, Ity_I64); case Iop_CmpEQ32Fx4: case Iop_CmpLT32Fx4: case Iop_CmpEQ64Fx2: case Iop_CmpLT64Fx2: case Iop_CmpLE32Fx4: case Iop_CmpUN32Fx4: case Iop_CmpLE64Fx2: case Iop_CmpUN64Fx2: case Iop_CmpGT32Fx4: case Iop_CmpGE32Fx4: case Iop_CmpEQ32F0x4: case Iop_CmpLT32F0x4: case Iop_CmpEQ64F0x2: case Iop_CmpLT64F0x2: case Iop_CmpLE32F0x4: case Iop_CmpUN32F0x4: case Iop_CmpLE64F0x2: case Iop_CmpUN64F0x2: case Iop_Add32Fx4: case Iop_Add32F0x4: case Iop_Add64Fx2: case Iop_Add64F0x2: case Iop_Div32Fx4: case Iop_Div32F0x4: case Iop_Div64Fx2: case Iop_Div64F0x2: case Iop_Max32Fx4: case Iop_Max32F0x4: case Iop_PwMax32Fx4: case Iop_PwMin32Fx4: case Iop_Max64Fx2: case Iop_Max64F0x2: case Iop_Min32Fx4: case Iop_Min32F0x4: case Iop_Min64Fx2: case Iop_Min64F0x2: case Iop_Mul32Fx4: case Iop_Mul32F0x4: case Iop_Mul64Fx2: case Iop_Mul64F0x2: case Iop_Sub32Fx4: case Iop_Sub32F0x4: case Iop_Sub64Fx2: case Iop_Sub64F0x2: case Iop_AndV128: case Iop_OrV128: case Iop_XorV128: case Iop_Add8x16: case Iop_Add16x8: case Iop_Add32x4: case Iop_Add64x2: case Iop_QAdd8Ux16: case Iop_QAdd16Ux8: case Iop_QAdd32Ux4: //case Iop_QAdd64Ux2: case Iop_QAdd8Sx16: case Iop_QAdd16Sx8: case Iop_QAdd32Sx4: case Iop_QAdd64Sx2: case Iop_PwAdd8x16: case Iop_PwAdd16x8: case Iop_PwAdd32x4: case Iop_Sub8x16: case Iop_Sub16x8: case Iop_Sub32x4: case Iop_Sub64x2: case Iop_QSub8Ux16: case Iop_QSub16Ux8: case Iop_QSub32Ux4: //case Iop_QSub64Ux2: case Iop_QSub8Sx16: case Iop_QSub16Sx8: case Iop_QSub32Sx4: case Iop_QSub64Sx2: case Iop_Mul8x16: case Iop_Mul16x8: case Iop_Mul32x4: case Iop_PolynomialMul8x16: case Iop_MulHi16Ux8: case Iop_MulHi32Ux4: case Iop_MulHi16Sx8: case Iop_MulHi32Sx4: case Iop_QDMulHi16Sx8: case Iop_QDMulHi32Sx4: case Iop_QRDMulHi16Sx8: case Iop_QRDMulHi32Sx4: case Iop_MullEven8Ux16: case Iop_MullEven16Ux8: case Iop_MullEven8Sx16: case Iop_MullEven16Sx8: case Iop_Avg8Ux16: case Iop_Avg16Ux8: case Iop_Avg32Ux4: case Iop_Avg8Sx16: case Iop_Avg16Sx8: case Iop_Avg32Sx4: case Iop_Max8Sx16: case Iop_Max16Sx8: case Iop_Max32Sx4: case Iop_Max8Ux16: case Iop_Max16Ux8: case Iop_Max32Ux4: case Iop_Min8Sx16: case Iop_Min16Sx8: case Iop_Min32Sx4: case Iop_Min8Ux16: case Iop_Min16Ux8: case Iop_Min32Ux4: case Iop_CmpEQ8x16: case Iop_CmpEQ16x8: case Iop_CmpEQ32x4: case Iop_CmpEQ64x2: case Iop_CmpGT8Sx16: case Iop_CmpGT16Sx8: case Iop_CmpGT32Sx4: case Iop_CmpGT64Sx2: case Iop_CmpGT8Ux16: case Iop_CmpGT16Ux8: case Iop_CmpGT32Ux4: case Iop_Shl8x16: case Iop_Shl16x8: case Iop_Shl32x4: case Iop_Shl64x2: case Iop_QShl8x16: case Iop_QShl16x8: case Iop_QShl32x4: case Iop_QShl64x2: case Iop_QSal8x16: case Iop_QSal16x8: case Iop_QSal32x4: case Iop_QSal64x2: case Iop_Shr8x16: case Iop_Shr16x8: case Iop_Shr32x4: case Iop_Shr64x2: case Iop_Sar8x16: case Iop_Sar16x8: case Iop_Sar32x4: case Iop_Sar64x2: case Iop_Sal8x16: case Iop_Sal16x8: case Iop_Sal32x4: case Iop_Sal64x2: case Iop_Rol8x16: case Iop_Rol16x8: case Iop_Rol32x4: case Iop_QNarrowBin16Sto8Ux16: case Iop_QNarrowBin32Sto16Ux8: case Iop_QNarrowBin16Sto8Sx16: case Iop_QNarrowBin32Sto16Sx8: case Iop_QNarrowBin16Uto8Ux16: case Iop_QNarrowBin32Uto16Ux8: case Iop_NarrowBin16to8x16: case Iop_NarrowBin32to16x8: case Iop_InterleaveHI8x16: case Iop_InterleaveHI16x8: case Iop_InterleaveHI32x4: case Iop_InterleaveHI64x2: case Iop_InterleaveLO8x16: case Iop_InterleaveLO16x8: case Iop_InterleaveLO32x4: case Iop_InterleaveLO64x2: case Iop_CatOddLanes8x16: case Iop_CatEvenLanes8x16: case Iop_CatOddLanes16x8: case Iop_CatEvenLanes16x8: case Iop_CatOddLanes32x4: case Iop_CatEvenLanes32x4: case Iop_InterleaveOddLanes8x16: case Iop_InterleaveEvenLanes8x16: case Iop_InterleaveOddLanes16x8: case Iop_InterleaveEvenLanes16x8: case Iop_InterleaveOddLanes32x4: case Iop_InterleaveEvenLanes32x4: case Iop_Perm8x16: case Iop_Perm32x4: case Iop_Recps32Fx4: case Iop_Rsqrts32Fx4: BINARY(Ity_V128,Ity_V128, Ity_V128); case Iop_PolynomialMull8x8: case Iop_Mull8Ux8: case Iop_Mull8Sx8: case Iop_Mull16Ux4: case Iop_Mull16Sx4: case Iop_Mull32Ux2: case Iop_Mull32Sx2: BINARY(Ity_I64, Ity_I64, Ity_V128); case Iop_NotV128: case Iop_Recip32Fx4: case Iop_Recip32F0x4: case Iop_Recip32x4: case Iop_Recip64Fx2: case Iop_Recip64F0x2: case Iop_RSqrt32Fx4: case Iop_RSqrt32F0x4: case Iop_RSqrt64Fx2: case Iop_RSqrt64F0x2: case Iop_Sqrt32Fx4: case Iop_Sqrt32F0x4: case Iop_Sqrt64Fx2: case Iop_Sqrt64F0x2: case Iop_CmpNEZ8x16: case Iop_CmpNEZ16x8: case Iop_CmpNEZ32x4: case Iop_CmpNEZ64x2: case Iop_Cnt8x16: case Iop_Clz8Sx16: case Iop_Clz16Sx8: case Iop_Clz32Sx4: case Iop_Cls8Sx16: case Iop_Cls16Sx8: case Iop_Cls32Sx4: case Iop_PwAddL8Ux16: case Iop_PwAddL16Ux8: case Iop_PwAddL32Ux4: case Iop_PwAddL8Sx16: case Iop_PwAddL16Sx8: case Iop_PwAddL32Sx4: case Iop_Reverse64_8x16: case Iop_Reverse64_16x8: case Iop_Reverse64_32x4: case Iop_Reverse32_8x16: case Iop_Reverse32_16x8: case Iop_Reverse16_8x16: case Iop_Neg32Fx4: case Iop_Abs8x16: case Iop_Abs16x8: case Iop_Abs32x4: UNARY(Ity_V128, Ity_V128); case Iop_ShlV128: case Iop_ShrV128: case Iop_ShlN8x16: case Iop_ShlN16x8: case Iop_ShlN32x4: case Iop_ShlN64x2: case Iop_ShrN8x16: case Iop_ShrN16x8: case Iop_ShrN32x4: case Iop_ShrN64x2: case Iop_SarN8x16: case Iop_SarN16x8: case Iop_SarN32x4: case Iop_SarN64x2: case Iop_QShlN8x16: case Iop_QShlN16x8: case Iop_QShlN32x4: case Iop_QShlN64x2: case Iop_QShlN8Sx16: case Iop_QShlN16Sx8: case Iop_QShlN32Sx4: case Iop_QShlN64Sx2: case Iop_QSalN8x16: case Iop_QSalN16x8: case Iop_QSalN32x4: case Iop_QSalN64x2: BINARY(Ity_V128,Ity_I8, Ity_V128); case Iop_F32ToFixed32Ux4_RZ: case Iop_F32ToFixed32Sx4_RZ: case Iop_Fixed32UToF32x4_RN: case Iop_Fixed32SToF32x4_RN: BINARY(Ity_V128, Ity_I8, Ity_V128); case Iop_F32ToFixed32Ux2_RZ: case Iop_F32ToFixed32Sx2_RZ: case Iop_Fixed32UToF32x2_RN: case Iop_Fixed32SToF32x2_RN: BINARY(Ity_I64, Ity_I8, Ity_I64); case Iop_GetElem8x16: BINARY(Ity_V128, Ity_I8, Ity_I8); case Iop_GetElem16x8: BINARY(Ity_V128, Ity_I8, Ity_I16); case Iop_GetElem32x4: BINARY(Ity_V128, Ity_I8, Ity_I32); case Iop_GetElem64x2: BINARY(Ity_V128, Ity_I8, Ity_I64); case Iop_GetElem8x8: BINARY(Ity_I64, Ity_I8, Ity_I8); case Iop_GetElem16x4: BINARY(Ity_I64, Ity_I8, Ity_I16); case Iop_GetElem32x2: BINARY(Ity_I64, Ity_I8, Ity_I32); case Iop_SetElem8x8: TERNARY(Ity_I64, Ity_I8, Ity_I8, Ity_I64); case Iop_SetElem16x4: TERNARY(Ity_I64, Ity_I8, Ity_I16, Ity_I64); case Iop_SetElem32x2: TERNARY(Ity_I64, Ity_I8, Ity_I32, Ity_I64); case Iop_Extract64: TERNARY(Ity_I64, Ity_I64, Ity_I8, Ity_I64); case Iop_ExtractV128: TERNARY(Ity_V128, Ity_V128, Ity_I8, Ity_V128); case Iop_QDMulLong16Sx4: case Iop_QDMulLong32Sx2: BINARY(Ity_I64, Ity_I64, Ity_V128); /* s390 specific */ case Iop_MAddF32: case Iop_MSubF32: QUATERNARY(ity_RMode,Ity_F32,Ity_F32,Ity_F32, Ity_F32); case Iop_F64HLtoF128: BINARY(Ity_F64,Ity_F64, Ity_F128); case Iop_F128HItoF64: case Iop_F128LOtoF64: UNARY(Ity_F128, Ity_F64); case Iop_AddF128: case Iop_SubF128: case Iop_MulF128: case Iop_DivF128: TERNARY(ity_RMode,Ity_F128,Ity_F128, Ity_F128); case Iop_NegF128: case Iop_AbsF128: UNARY(Ity_F128, Ity_F128); case Iop_SqrtF128: BINARY(ity_RMode,Ity_F128, Ity_F128); case Iop_I32StoF128: UNARY(Ity_I32, Ity_F128); case Iop_I64StoF128: UNARY(Ity_I64, Ity_F128); case Iop_I32UtoF128: UNARY(Ity_I32, Ity_F128); case Iop_I64UtoF128: UNARY(Ity_I64, Ity_F128); case Iop_F128toI32S: BINARY(ity_RMode,Ity_F128, Ity_I32); case Iop_F128toI64S: BINARY(ity_RMode,Ity_F128, Ity_I64); case Iop_F128toI32U: BINARY(ity_RMode,Ity_F128, Ity_I32); case Iop_F128toI64U: BINARY(ity_RMode,Ity_F128, Ity_I64); case Iop_F32toF128: UNARY(Ity_F32, Ity_F128); case Iop_F64toF128: UNARY(Ity_F64, Ity_F128); case Iop_F128toF32: BINARY(ity_RMode,Ity_F128, Ity_F32); case Iop_F128toF64: BINARY(ity_RMode,Ity_F128, Ity_F64); case Iop_D32toD64: case Iop_ExtractExpD64: UNARY(Ity_D64, Ity_D64); case Iop_InsertExpD64: BINARY(Ity_D64,Ity_D64, Ity_D64); case Iop_ExtractExpD128: UNARY(Ity_D128, Ity_D64); case Iop_InsertExpD128: BINARY(Ity_D64,Ity_D128, Ity_D128); case Iop_D64toD128: UNARY(Ity_D64, Ity_D128); case Iop_ReinterpD64asI64: UNARY(Ity_D64, Ity_I64); case Iop_ReinterpI64asD64: UNARY(Ity_I64, Ity_D64); case Iop_RoundD64toInt: BINARY(ity_RMode,Ity_D64, Ity_D64); case Iop_RoundD128toInt: BINARY(ity_RMode,Ity_D128, Ity_D128); case Iop_I64StoD128: /* I64 bit pattern stored in Float register */ UNARY(Ity_D64, Ity_D128); case Iop_DPBtoBCD: case Iop_BCDtoDPB: UNARY(Ity_I64, Ity_I64); case Iop_D128HItoD64: case Iop_D128LOtoD64: UNARY(Ity_D128, Ity_D64); case Iop_D128toI64S: BINARY(ity_RMode, Ity_D128, Ity_D64); case Iop_D64HLtoD128: BINARY(Ity_D64, Ity_D64, Ity_D128); case Iop_ShlD64: case Iop_ShrD64: BINARY(Ity_D64, Ity_I8, Ity_D64 ); case Iop_D64toD32: case Iop_D64toI64S: BINARY(ity_RMode, Ity_D64, Ity_D64); case Iop_I64StoD64: /* I64 bit pattern stored in Float register */ BINARY(ity_RMode, Ity_D64, Ity_D64); case Iop_CmpD64: BINARY(Ity_D64,Ity_D64, Ity_I32); case Iop_CmpD128: BINARY(Ity_D128,Ity_D128, Ity_I32); case Iop_QuantizeD64: case Iop_SignificanceRoundD64: TERNARY(ity_RMode,Ity_D64,Ity_D64, Ity_D64); case Iop_QuantizeD128: case Iop_SignificanceRoundD128: TERNARY(ity_RMode,Ity_D128,Ity_D128, Ity_D128); case Iop_ShlD128: case Iop_ShrD128: BINARY(Ity_D128, Ity_I8, Ity_D128 ); case Iop_AddD64: case Iop_SubD64: case Iop_MulD64: case Iop_DivD64: TERNARY( ity_RMode, Ity_D64, Ity_D64, Ity_D64 ); case Iop_D128toD64: BINARY( ity_RMode, Ity_D128, Ity_D64 ); case Iop_AddD128: case Iop_SubD128: case Iop_MulD128: case Iop_DivD128: TERNARY(ity_RMode,Ity_D128,Ity_D128, Ity_D128); case Iop_V256to64_0: case Iop_V256to64_1: case Iop_V256to64_2: case Iop_V256to64_3: UNARY(Ity_V256, Ity_I64); case Iop_64x4toV256: QUATERNARY(Ity_I64, Ity_I64, Ity_I64, Ity_I64, Ity_V256); case Iop_Add64Fx4: case Iop_Sub64Fx4: case Iop_Mul64Fx4: case Iop_Div64Fx4: case Iop_Add32Fx8: case Iop_Sub32Fx8: case Iop_Mul32Fx8: case Iop_Div32Fx8: case Iop_AndV256: case Iop_OrV256: case Iop_XorV256: case Iop_Max32Fx8: case Iop_Min32Fx8: case Iop_Max64Fx4: case Iop_Min64Fx4: BINARY(Ity_V256,Ity_V256, Ity_V256); case Iop_V256toV128_1: case Iop_V256toV128_0: UNARY(Ity_V256, Ity_V128); case Iop_V128HLtoV256: BINARY(Ity_V128,Ity_V128, Ity_V256); case Iop_NotV256: case Iop_RSqrt32Fx8: case Iop_Sqrt32Fx8: case Iop_Sqrt64Fx4: case Iop_Recip32Fx8: case Iop_CmpNEZ64x4: case Iop_CmpNEZ32x8: UNARY(Ity_V256, Ity_V256); default: panic(__func__); } # undef UNARY # undef BINARY # undef TERNARY # undef COMPARISON # undef UNARY_COMPARISON }