X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-ops.h;h=76a4be2d5928d85cf85f228c5cd1237dd8252d69;hb=f50cce0a651dccb72b7c667d4a8eebf9c622c81f;hp=4fa3238c0f2883f3301f7e81374fb05642592471;hpb=6dab63a34698c1b86f9f4232f2d1edcff6d423bb;p=mono.git diff --git a/mono/mini/mini-ops.h b/mono/mini/mini-ops.h index 4fa3238c0f2..76a4be2d592 100644 --- a/mono/mini/mini-ops.h +++ b/mono/mini/mini-ops.h @@ -20,6 +20,7 @@ MINI_OP(OP_ARG, "arg", NONE, NONE, NONE) MINI_OP(OP_ARGLIST, "oparglist", NONE, IREG, NONE) MINI_OP(OP_OUTARG_VT, "outarg_vt", NONE, VREG, NONE) MINI_OP(OP_OUTARG_VTRETADDR, "outarg_vtretaddr", IREG, NONE, NONE) +MINI_OP(OP_SETRET, "setret", NONE, IREG, NONE) MINI_OP(OP_SETFRET, "setfret", FREG, FREG, NONE) MINI_OP(OP_SETLRET, "setlret", NONE, IREG, IREG) MINI_OP(OP_LOCALLOC, "localloc", IREG, IREG, NONE) @@ -72,7 +73,7 @@ MINI_OP(OP_STOREI8_MEMBASE_REG, "storei8_membase_reg", IREG, IREG, NONE) MINI_OP(OP_STORER4_MEMBASE_REG, "storer4_membase_reg", IREG, FREG, NONE) MINI_OP(OP_STORER8_MEMBASE_REG, "storer8_membase_reg", IREG, FREG, NONE) -#ifdef MONO_ARCH_SUPPORT_SIMD_INTRINSICS +#if defined(TARGET_X86) || defined(TARGET_AMD64) MINI_OP(OP_STOREX_MEMBASE_REG, "storex_membase_reg", IREG, XREG, NONE) MINI_OP(OP_STOREX_ALIGNED_MEMBASE_REG, "storex_aligned_membase_reg", IREG, XREG, NONE) MINI_OP(OP_STOREX_NTA_MEMBASE_REG, "storex_nta_membase_reg", IREG, XREG, NONE) @@ -100,32 +101,32 @@ MINI_OP(OP_LOADR8_MEMBASE,"loadr8_membase", FREG, IREG, NONE) MINI_OP(OP_LOADX_MEMBASE, "loadx_membase", XREG, IREG, NONE) -#ifdef MONO_ARCH_SUPPORT_SIMD_INTRINSICS +#if defined(TARGET_X86) || defined(TARGET_AMD64) MINI_OP(OP_LOADX_ALIGNED_MEMBASE, "loadx_aligned_membase", XREG, IREG, NONE) #endif MINI_OP(OP_LOADV_MEMBASE, "loadv_membase", VREG, IREG, NONE) /* indexed loads: dreg = load at (sreg1 + sreg2)*/ -MINI_OP(OP_LOAD_MEMINDEX, "load_memindex", NONE, NONE, NONE) -MINI_OP(OP_LOADI1_MEMINDEX,"loadi1_memindex", NONE, NONE, NONE) -MINI_OP(OP_LOADU1_MEMINDEX,"loadu1_memindex", NONE, NONE, NONE) -MINI_OP(OP_LOADI2_MEMINDEX,"loadi2_memindex", NONE, NONE, NONE) -MINI_OP(OP_LOADU2_MEMINDEX,"loadu2_memindex", NONE, NONE, NONE) -MINI_OP(OP_LOADI4_MEMINDEX,"loadi4_memindex", NONE, NONE, NONE) -MINI_OP(OP_LOADU4_MEMINDEX,"loadu4_memindex", NONE, NONE, NONE) -MINI_OP(OP_LOADI8_MEMINDEX,"loadi8_memindex", NONE, NONE, NONE) -MINI_OP(OP_LOADR4_MEMINDEX,"loadr4_memindex", NONE, NONE, NONE) -MINI_OP(OP_LOADR8_MEMINDEX,"loadr8_memindex", NONE, NONE, NONE) +MINI_OP(OP_LOAD_MEMINDEX, "load_memindex", IREG, IREG, IREG) +MINI_OP(OP_LOADI1_MEMINDEX,"loadi1_memindex", IREG, IREG, IREG) +MINI_OP(OP_LOADU1_MEMINDEX,"loadu1_memindex", IREG, IREG, IREG) +MINI_OP(OP_LOADI2_MEMINDEX,"loadi2_memindex", IREG, IREG, IREG) +MINI_OP(OP_LOADU2_MEMINDEX,"loadu2_memindex", IREG, IREG, IREG) +MINI_OP(OP_LOADI4_MEMINDEX,"loadi4_memindex", IREG, IREG, IREG) +MINI_OP(OP_LOADU4_MEMINDEX,"loadu4_memindex", IREG, IREG, IREG) +MINI_OP(OP_LOADI8_MEMINDEX,"loadi8_memindex", IREG, IREG, IREG) +MINI_OP(OP_LOADR4_MEMINDEX,"loadr4_memindex", IREG, IREG, IREG) +MINI_OP(OP_LOADR8_MEMINDEX,"loadr8_memindex", IREG, IREG, IREG) /* indexed stores: store sreg1 at (destbasereg + sreg2) */ /* MONO_IS_STORE_MEMINDEX depends on the order here */ -MINI_OP(OP_STORE_MEMINDEX,"store_memindex", NONE, NONE, NONE) -MINI_OP(OP_STOREI1_MEMINDEX,"storei1_memindex", NONE, NONE, NONE) -MINI_OP(OP_STOREI2_MEMINDEX,"storei2_memindex", NONE, NONE, NONE) -MINI_OP(OP_STOREI4_MEMINDEX,"storei4_memindex", NONE, NONE, NONE) -MINI_OP(OP_STOREI8_MEMINDEX,"storei8_memindex", NONE, NONE, NONE) -MINI_OP(OP_STORER4_MEMINDEX,"storer4_memindex", NONE, NONE, NONE) -MINI_OP(OP_STORER8_MEMINDEX,"storer8_memindex", NONE, NONE, NONE) +MINI_OP(OP_STORE_MEMINDEX,"store_memindex", IREG, IREG, IREG) +MINI_OP(OP_STOREI1_MEMINDEX,"storei1_memindex", IREG, IREG, IREG) +MINI_OP(OP_STOREI2_MEMINDEX,"storei2_memindex", IREG, IREG, IREG) +MINI_OP(OP_STOREI4_MEMINDEX,"storei4_memindex", IREG, IREG, IREG) +MINI_OP(OP_STOREI8_MEMINDEX,"storei8_memindex", IREG, IREG, IREG) +MINI_OP(OP_STORER4_MEMINDEX,"storer4_memindex", IREG, IREG, IREG) +MINI_OP(OP_STORER8_MEMINDEX,"storer8_memindex", IREG, IREG, IREG) MINI_OP(OP_LOADR8_SPILL_MEMBASE,"loadr8_spill_membase", NONE, NONE, NONE) MINI_OP(OP_LOAD_MEM,"load_mem", IREG, NONE, NONE) @@ -539,6 +540,7 @@ MINI_OP(OP_ZEXT_I1, "zext_i1", IREG, IREG, NONE) MINI_OP(OP_ZEXT_I2, "zext_i2", IREG, IREG, NONE) MINI_OP(OP_ZEXT_I4, "zext_i4", LREG, IREG, NONE) MINI_OP(OP_CNE, "cne", NONE, NONE, NONE) +MINI_OP(OP_TRUNC_I4, "trunc_i4", IREG, LREG, NONE) /* to implement the upper half of long32 add and sub */ MINI_OP(OP_ADD_OVF_CARRY, "add_ovf_carry", IREG, IREG, IREG) MINI_OP(OP_SUB_OVF_CARRY, "sub_ovf_carry", IREG, IREG, IREG) @@ -578,7 +580,7 @@ MINI_OP(OP_NOT_NULL, "not_null", NONE, IREG, NONE) /* SIMD opcodes. */ -#ifdef MONO_ARCH_SUPPORT_SIMD_INTRINSICS +#if defined(TARGET_X86) || defined(TARGET_AMD64) MINI_OP(OP_ADDPS, "addps", XREG, XREG, XREG) MINI_OP(OP_DIVPS, "divps", XREG, XREG, XREG) @@ -799,10 +801,8 @@ MINI_OP(OP_ATOMIC_ADD_IMM_NEW_I8, "atomic_add_imm_new_i8", IREG, IREG, NONE) MINI_OP(OP_ATOMIC_EXCHANGE_I8, "atomic_exchange_i8", IREG, IREG, IREG) MINI_OP(OP_MEMORY_BARRIER, "memory_barrier", NONE, NONE, NONE) -/* CompareExchange where the value to store is a constant */ -/* backend->data holds the constant value */ -MINI_OP(OP_ATOMIC_CAS_IMM_I4, "atomic_cas_imm_i4", IREG, IREG, IREG) -MINI_OP(OP_ATOMIC_CAS_IMM_I8, "atomic_cas_imm_i8", IREG, IREG, IREG) +MINI_OP3(OP_ATOMIC_CAS_I4, "atomic_cas_i4", IREG, IREG, IREG, IREG) +MINI_OP3(OP_ATOMIC_CAS_I8, "atomic_cas_i8", IREG, IREG, IREG, IREG) /* Conditional move opcodes. * Must be in the same order as the matching CEE_B... opcodes @@ -848,7 +848,7 @@ MINI_OP(OP_LIVERANGE_START, "liverange_start", NONE, NONE, NONE) MINI_OP(OP_LIVERANGE_END, "liverange_end", NONE, NONE, NONE) /* Arch specific opcodes */ -#if defined(__i386__) || defined(__x86_64__) +#if defined(TARGET_X86) || defined(TARGET_AMD64) MINI_OP(OP_X86_TEST_NULL, "x86_test_null", NONE, IREG, NONE) MINI_OP(OP_X86_COMPARE_MEMBASE_REG,"x86_compare_membase_reg", NONE, IREG, IREG) MINI_OP(OP_X86_COMPARE_MEMBASE_IMM,"x86_compare_membase_imm", NONE, IREG, NONE) @@ -894,7 +894,7 @@ MINI_OP(OP_X86_SETNE_MEMBASE, "x86_setne_membase", NONE, IREG, NONE) MINI_OP(OP_X86_FXCH, "x86_fxch", NONE, NONE, NONE) #endif -#if defined(__x86_64__) +#if defined(TARGET_AMD64) MINI_OP(OP_AMD64_TEST_NULL, "amd64_test_null", NONE, NONE, NONE) MINI_OP(OP_AMD64_SET_XMMREG_R4, "amd64_set_xmmreg_r4", FREG, FREG, NONE) MINI_OP(OP_AMD64_SET_XMMREG_R8, "amd64_set_xmmreg_r8", FREG, FREG, NONE) @@ -926,7 +926,7 @@ MINI_OP(OP_AMD64_OR_REG_MEMBASE, "amd64_or_reg_membase", IREG, IREG, IRE MINI_OP(OP_AMD64_XOR_REG_MEMBASE, "amd64_xor_reg_membase", IREG, IREG, IREG) MINI_OP(OP_AMD64_MUL_REG_MEMBASE, "amd64_mul_reg_membase", NONE, IREG, IREG) -MINI_OP(OP_AMD64_LOADI8_MEMINDEX, "amd64_loadi8_memindex", NONE, NONE, NONE) +MINI_OP(OP_AMD64_LOADI8_MEMINDEX, "amd64_loadi8_memindex", IREG, IREG, IREG) MINI_OP(OP_AMD64_SAVE_SP_TO_LMF, "amd64_save_sp_to_lmf", NONE, NONE, NONE) #endif @@ -936,7 +936,7 @@ MINI_OP(OP_PPC_SUBFZE, "ppc_subfze", IREG, IREG, NONE) MINI_OP(OP_CHECK_FINITE, "ppc_check_finite", NONE, IREG, NONE) #endif -#if defined(__arm__) +#if defined(TARGET_ARM) MINI_OP(OP_ARM_RSBS_IMM, "arm_rsbs_imm", IREG, IREG, NONE) MINI_OP(OP_ARM_RSC_IMM, "arm_rsc_imm", IREG, IREG, NONE) #endif @@ -1001,78 +1001,78 @@ MINI_OP(OP_IA64_STOREU8, "ia64_storeu8", NONE, NONE, NONE) MINI_OP(OP_IA64_STORER4, "ia64_storer4", NONE, NONE, NONE) MINI_OP(OP_IA64_STORER8, "ia64_storer8", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_EQ, "ia64_cmp4_eq", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_NE, "ia64_cmp4_ne", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_LE, "ia64_cmp4_le", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_LT, "ia64_cmp4_lt", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_GE, "ia64_cmp4_ge", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_GT, "ia64_cmp4_gt", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_LE_UN, "ia64_cmp4_le_un", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_LT_UN, "ia64_cmp4_lt_un", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_GE_UN, "ia64_cmp4_ge_un", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_GT_UN, "ia64_cmp4_gt_un", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_EQ, "ia64_cmp_eq", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_NE, "ia64_cmp_ne", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_LE, "ia64_cmp_le", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_LT, "ia64_cmp_lt", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_GE, "ia64_cmp_ge", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_GT, "ia64_cmp_gt", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_LT_UN, "ia64_cmp_lt_un", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_GT_UN, "ia64_cmp_gt_un", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_GE_UN, "ia64_cmp_ge_un", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_LE_UN, "ia64_cmp_le_un", NONE, NONE, NONE) - -MINI_OP(OP_IA64_CMP4_EQ_IMM, "ia64_cmp4_eq_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_NE_IMM, "ia64_cmp4_ne_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_LE_IMM, "ia64_cmp4_le_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_LT_IMM, "ia64_cmp4_lt_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_GE_IMM, "ia64_cmp4_ge_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_GT_IMM, "ia64_cmp4_gt_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_LE_UN_IMM, "ia64_cmp4_le_un_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_LT_UN_IMM, "ia64_cmp4_lt_un_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_GE_UN_IMM, "ia64_cmp4_ge_un_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP4_GT_UN_IMM, "ia64_cmp4_gt_un_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_EQ_IMM, "ia64_cmp_eq_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_NE_IMM, "ia64_cmp_ne_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_LE_IMM, "ia64_cmp_le_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_LT_IMM, "ia64_cmp_lt_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_GE_IMM, "ia64_cmp_ge_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_GT_IMM, "ia64_cmp_gt_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_LT_UN_IMM, "ia64_cmp_lt_un_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_GT_UN_IMM, "ia64_cmp_gt_un_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_GE_UN_IMM, "ia64_cmp_ge_un_imm", NONE, NONE, NONE) -MINI_OP(OP_IA64_CMP_LE_UN_IMM, "ia64_cmp_le_un_imm", NONE, NONE, NONE) - -MINI_OP(OP_IA64_FCMP_EQ, "ia64_fcmp_eq", NONE, NONE, NONE) -MINI_OP(OP_IA64_FCMP_NE, "ia64_fcmp_ne", NONE, NONE, NONE) -MINI_OP(OP_IA64_FCMP_LE, "ia64_fcmp_le", NONE, NONE, NONE) -MINI_OP(OP_IA64_FCMP_LT, "ia64_fcmp_lt", NONE, NONE, NONE) -MINI_OP(OP_IA64_FCMP_GE, "ia64_fcmp_ge", NONE, NONE, NONE) -MINI_OP(OP_IA64_FCMP_GT, "ia64_fcmp_gt", NONE, NONE, NONE) -MINI_OP(OP_IA64_FCMP_LT_UN, "ia64_fcmp_lt_un", NONE, NONE, NONE) -MINI_OP(OP_IA64_FCMP_GT_UN, "ia64_fcmp_gt_un", NONE, NONE, NONE) -MINI_OP(OP_IA64_FCMP_GE_UN, "ia64_fcmp_ge_un", NONE, NONE, NONE) -MINI_OP(OP_IA64_FCMP_LE_UN, "ia64_fcmp_le_un", NONE, NONE, NONE) +MINI_OP(OP_IA64_CMP4_EQ, "ia64_cmp4_eq", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP4_NE, "ia64_cmp4_ne", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP4_LE, "ia64_cmp4_le", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP4_LT, "ia64_cmp4_lt", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP4_GE, "ia64_cmp4_ge", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP4_GT, "ia64_cmp4_gt", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP4_LE_UN, "ia64_cmp4_le_un", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP4_LT_UN, "ia64_cmp4_lt_un", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP4_GE_UN, "ia64_cmp4_ge_un", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP4_GT_UN, "ia64_cmp4_gt_un", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP_EQ, "ia64_cmp_eq", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP_NE, "ia64_cmp_ne", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP_LE, "ia64_cmp_le", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP_LT, "ia64_cmp_lt", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP_GE, "ia64_cmp_ge", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP_GT, "ia64_cmp_gt", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP_LT_UN, "ia64_cmp_lt_un", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP_GT_UN, "ia64_cmp_gt_un", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP_GE_UN, "ia64_cmp_ge_un", NONE, IREG, IREG) +MINI_OP(OP_IA64_CMP_LE_UN, "ia64_cmp_le_un", NONE, IREG, IREG) + +MINI_OP(OP_IA64_CMP4_EQ_IMM, "ia64_cmp4_eq_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP4_NE_IMM, "ia64_cmp4_ne_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP4_LE_IMM, "ia64_cmp4_le_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP4_LT_IMM, "ia64_cmp4_lt_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP4_GE_IMM, "ia64_cmp4_ge_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP4_GT_IMM, "ia64_cmp4_gt_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP4_LE_UN_IMM, "ia64_cmp4_le_un_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP4_LT_UN_IMM, "ia64_cmp4_lt_un_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP4_GE_UN_IMM, "ia64_cmp4_ge_un_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP4_GT_UN_IMM, "ia64_cmp4_gt_un_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP_EQ_IMM, "ia64_cmp_eq_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP_NE_IMM, "ia64_cmp_ne_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP_LE_IMM, "ia64_cmp_le_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP_LT_IMM, "ia64_cmp_lt_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP_GE_IMM, "ia64_cmp_ge_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP_GT_IMM, "ia64_cmp_gt_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP_LT_UN_IMM, "ia64_cmp_lt_un_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP_GT_UN_IMM, "ia64_cmp_gt_un_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP_GE_UN_IMM, "ia64_cmp_ge_un_imm", NONE, NONE, IREG) +MINI_OP(OP_IA64_CMP_LE_UN_IMM, "ia64_cmp_le_un_imm", NONE, NONE, IREG) + +MINI_OP(OP_IA64_FCMP_EQ, "ia64_fcmp_eq", NONE, IREG, IREG) +MINI_OP(OP_IA64_FCMP_NE, "ia64_fcmp_ne", NONE, IREG, IREG) +MINI_OP(OP_IA64_FCMP_LE, "ia64_fcmp_le", NONE, IREG, IREG) +MINI_OP(OP_IA64_FCMP_LT, "ia64_fcmp_lt", NONE, IREG, IREG) +MINI_OP(OP_IA64_FCMP_GE, "ia64_fcmp_ge", NONE, IREG, IREG) +MINI_OP(OP_IA64_FCMP_GT, "ia64_fcmp_gt", NONE, IREG, IREG) +MINI_OP(OP_IA64_FCMP_LT_UN, "ia64_fcmp_lt_un", NONE, IREG, IREG) +MINI_OP(OP_IA64_FCMP_GT_UN, "ia64_fcmp_gt_un", NONE, IREG, IREG) +MINI_OP(OP_IA64_FCMP_GE_UN, "ia64_fcmp_ge_un", NONE, IREG, IREG) +MINI_OP(OP_IA64_FCMP_LE_UN, "ia64_fcmp_le_un", NONE, IREG, IREG) MINI_OP(OP_IA64_BR_COND, "ia64_br_cond", NONE, NONE, NONE) MINI_OP(OP_IA64_COND_EXC, "ia64_cond_exc", NONE, NONE, NONE) -MINI_OP(OP_IA64_CSET, "ia64_cset", NONE, NONE, NONE) - -MINI_OP(OP_IA64_STOREI1_MEMBASE_INC_REG, "ia64_storei1_membase_inc_reg", NONE, NONE, NONE) -MINI_OP(OP_IA64_STOREI2_MEMBASE_INC_REG, "ia64_storei2_membase_inc_reg", NONE, NONE, NONE) -MINI_OP(OP_IA64_STOREI4_MEMBASE_INC_REG, "ia64_storei4_membase_inc_reg", NONE, NONE, NONE) -MINI_OP(OP_IA64_STOREI8_MEMBASE_INC_REG, "ia64_storei8_membase_inc_reg", NONE, NONE, NONE) -MINI_OP(OP_IA64_STORER4_MEMBASE_INC_REG, "ia64_storer4_membase_inc_reg", NONE, NONE, NONE) -MINI_OP(OP_IA64_STORER8_MEMBASE_INC_REG, "ia64_storer8_membase_inc_reg", NONE, NONE, NONE) -MINI_OP(OP_IA64_LOADI1_MEMBASE_INC,"ia64_loadi1_membase_inc", NONE, NONE, NONE) -MINI_OP(OP_IA64_LOADU1_MEMBASE_INC,"ia64_loadu1_membase_inc", NONE, NONE, NONE) -MINI_OP(OP_IA64_LOADI2_MEMBASE_INC,"ia64_loadi2_membase_inc", NONE, NONE, NONE) -MINI_OP(OP_IA64_LOADU2_MEMBASE_INC,"ia64_loadu2_membase_inc", NONE, NONE, NONE) -MINI_OP(OP_IA64_LOADI4_MEMBASE_INC,"ia64_loadi4_membase_inc", NONE, NONE, NONE) -MINI_OP(OP_IA64_LOADU4_MEMBASE_INC,"ia64_loadu4_membase_inc", NONE, NONE, NONE) -MINI_OP(OP_IA64_LOADI8_MEMBASE_INC,"ia64_loadi8_membase_inc", NONE, NONE, NONE) -MINI_OP(OP_IA64_LOADR4_MEMBASE_INC,"ia64_loadr4_membase_inc", NONE, NONE, NONE) -MINI_OP(OP_IA64_LOADR8_MEMBASE_INC,"ia64_loadr8_membase_inc", NONE, NONE, NONE) +MINI_OP(OP_IA64_CSET, "ia64_cset", IREG, NONE, NONE) + +MINI_OP(OP_IA64_STOREI1_MEMBASE_INC_REG, "ia64_storei1_membase_inc_reg", IREG, IREG, NONE) +MINI_OP(OP_IA64_STOREI2_MEMBASE_INC_REG, "ia64_storei2_membase_inc_reg", IREG, IREG, NONE) +MINI_OP(OP_IA64_STOREI4_MEMBASE_INC_REG, "ia64_storei4_membase_inc_reg", IREG, IREG, NONE) +MINI_OP(OP_IA64_STOREI8_MEMBASE_INC_REG, "ia64_storei8_membase_inc_reg", IREG, IREG, NONE) +MINI_OP(OP_IA64_STORER4_MEMBASE_INC_REG, "ia64_storer4_membase_inc_reg", IREG, IREG, NONE) +MINI_OP(OP_IA64_STORER8_MEMBASE_INC_REG, "ia64_storer8_membase_inc_reg", IREG, IREG, NONE) +MINI_OP(OP_IA64_LOADI1_MEMBASE_INC,"ia64_loadi1_membase_inc", IREG, IREG, NONE) +MINI_OP(OP_IA64_LOADU1_MEMBASE_INC,"ia64_loadu1_membase_inc", IREG, IREG, NONE) +MINI_OP(OP_IA64_LOADI2_MEMBASE_INC,"ia64_loadi2_membase_inc", IREG, IREG, NONE) +MINI_OP(OP_IA64_LOADU2_MEMBASE_INC,"ia64_loadu2_membase_inc", IREG, IREG, NONE) +MINI_OP(OP_IA64_LOADI4_MEMBASE_INC,"ia64_loadi4_membase_inc", IREG, IREG, NONE) +MINI_OP(OP_IA64_LOADU4_MEMBASE_INC,"ia64_loadu4_membase_inc", IREG, IREG, NONE) +MINI_OP(OP_IA64_LOADI8_MEMBASE_INC,"ia64_loadi8_membase_inc", IREG, IREG, NONE) +MINI_OP(OP_IA64_LOADR4_MEMBASE_INC,"ia64_loadr4_membase_inc", IREG, IREG, NONE) +MINI_OP(OP_IA64_LOADR8_MEMBASE_INC,"ia64_loadr8_membase_inc", IREG, IREG, NONE) #endif #if defined(__alpha__) @@ -1221,3 +1221,8 @@ MINI_OP(OP_HPPA_STORER4_RIGHT, "hppa_storer4_right", NONE, NONE, NONE) MINI_OP(OP_HPPA_SETF4REG, "hppa_setf4reg", NONE, NONE, NONE) #endif + +/* Same as OUTARG_VT, but has a dreg */ +#ifdef ENABLE_LLVM +MINI_OP(OP_LLVM_OUTARG_VT, "llvm_outarg_vt", IREG, VREG, NONE) +#endif