Changeset 104208 in vbox
- Timestamp:
- Apr 5, 2024 9:17:41 PM (10 months ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm
r104207 r104208 6839 6839 ; 32-bit forms of ADCX and ADOX 6840 6840 ; 6841 ; @param A0 Pointer to the destination operand (input/output). 6842 ; @param A1 32-bit source operand 1 (input). 6843 ; @param A2 Pointer to the EFLAGS value (input/output). 6841 ; @returns Updated EFLAGS. 6842 ; @param A0 Incoming EFLAGS value (input). 6843 ; @param A1 Pointer to the destination operand (input/output). 6844 ; @param A2 32-bit source operand 1 (input). 6844 6845 ; 6845 6846 %macro IEMIMPL_ADX_32 2 … … 6847 6848 PROLOGUE_4_ARGS 6848 6849 6849 IEM_LOAD_FLAGS _OLD A2, %2, 06850 %1 A 1_32, [A0]6851 mov [A 0], A1_326852 IEM_SAVE_FLAGS_ OLD A2, %2, 0, 06850 IEM_LOAD_FLAGS A0_32, %2, 0 6851 %1 A2_32, [A1] 6852 mov [A1], A2_32 6853 IEM_SAVE_FLAGS_RETVAL A0_32, %2, 0, 0 6853 6854 6854 6855 EPILOGUE_4_ARGS … … 6859 6860 ; 64-bit forms of ADCX and ADOX 6860 6861 ; 6861 ; @param A0 Pointer to the destination operand (input/output). 6862 ; @param A1 64-bit source operand 1 (input). 6863 ; @param A2 Pointer to the EFLAGS value (input/output). 6862 ; @returns Updated EFLAGS. 6863 ; @param A0 Incoming EFLAGS value (input). 6864 ; @param A1 Pointer to the destination operand (input/output). 6865 ; @param A2 64-bit source operand 1 (input). 6864 6866 ; 6865 6867 %macro IEMIMPL_ADX_64 2 … … 6867 6869 PROLOGUE_4_ARGS 6868 6870 6869 IEM_LOAD_FLAGS _OLD A2, %2, 06870 %1 A 1, [A0]6871 mov [A 0], A16872 IEM_SAVE_FLAGS_ OLD A2, %2, 0, 06871 IEM_LOAD_FLAGS A0_32, %2, 0 6872 %1 A2, [A1] 6873 mov [A1], A2 6874 IEM_SAVE_FLAGS_RETVAL A0_32, %2, 0, 0 6873 6875 6874 6876 EPILOGUE_4_ARGS -
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r104207 r104208 3933 3933 3934 3934 3935 IEM_DECL_IMPL_DEF(void, iemAImpl_arpl,(uint16_t *pu16Dst, uint16_t u16Src, uint32_t *pfEFlags)) 3936 { 3937 if ((*pu16Dst & X86_SEL_RPL) < (u16Src & X86_SEL_RPL)) 3938 { 3939 *pu16Dst &= X86_SEL_MASK_OFF_RPL; 3940 *pu16Dst |= u16Src & X86_SEL_RPL; 3941 3942 *pfEFlags |= X86_EFL_ZF; 3935 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_arpl,(uint32_t fEFlags, uint16_t *pu16Dst, uint16_t u16Src)) 3936 { 3937 uint16_t u16Dst = *pu16Dst; 3938 if ((u16Dst & X86_SEL_RPL) < (u16Src & X86_SEL_RPL)) 3939 { 3940 u16Dst &= X86_SEL_MASK_OFF_RPL; 3941 u16Dst |= u16Src & X86_SEL_RPL; 3942 *pu16Dst = u16Dst; 3943 3944 fEFlags |= X86_EFL_ZF; 3943 3945 } 3944 3946 else 3945 *pfEFlags &= ~X86_EFL_ZF; 3947 fEFlags &= ~X86_EFL_ZF; 3948 return fEFlags; 3946 3949 } 3947 3950 … … 19264 19267 do \ 19265 19268 { \ 19266 bool f = RT_BOOL( *pfEFlags & (a_Flag)); \19269 bool f = RT_BOOL(fEFlags & (a_Flag)); \ 19267 19270 a_Type uTmp = *puDst + uSrc; \ 19268 19271 if (uTmp < uSrc) \ 19269 *pfEFlags |= (a_Flag); \19272 fEFlags |= (a_Flag); \ 19270 19273 else \ 19271 *pfEFlags &= ~(a_Flag); \19274 fEFlags &= ~(a_Flag); \ 19272 19275 if ( uTmp == a_Max \ 19273 19276 && f) \ 19274 *pfEFlags |= (a_Flag); \19277 fEFlags |= (a_Flag); \ 19275 19278 if (f) \ 19276 19279 uTmp++; \ … … 19279 19282 while (0) 19280 19283 19281 IEM_DECL_IMPL_DEF( void, iemAImpl_adcx_u32_fallback,(uint32_t *puDst, uint32_t uSrc, uint32_t *pfEFlags))19284 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_adcx_u32_fallback,(uint32_t fEFlags, uint32_t *puDst, uint32_t uSrc)) 19282 19285 { 19283 19286 ADX_EMIT(X86_EFL_CF, uint32_t, UINT32_MAX); 19284 } 19285 19286 IEM_DECL_IMPL_DEF(void, iemAImpl_adcx_u64_fallback,(uint64_t *puDst, uint64_t uSrc, uint32_t *pfEFlags)) 19287 return fEFlags; 19288 } 19289 19290 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_adcx_u64_fallback,(uint32_t fEFlags, uint64_t *puDst, uint64_t uSrc)) 19287 19291 { 19288 19292 ADX_EMIT(X86_EFL_CF, uint64_t, UINT64_MAX); 19293 return fEFlags; 19289 19294 } 19290 19295 19291 19296 # if defined(IEM_WITHOUT_ASSEMBLY) 19292 19297 19293 IEM_DECL_IMPL_DEF( void, iemAImpl_adcx_u32,(uint32_t *puDst, uint32_t uSrc, uint32_t *pfEFlags))19298 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_adcx_u32,(uint32_t fEFlags, uint32_t *puDst, uint32_t uSrc)) 19294 19299 { 19295 19300 ADX_EMIT(X86_EFL_CF, uint32_t, UINT32_MAX); 19296 } 19297 19298 IEM_DECL_IMPL_DEF(void, iemAImpl_adcx_u64,(uint64_t *puDst, uint64_t uSrc, uint32_t *pfEFlags)) 19301 return fEFlags; 19302 } 19303 19304 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_adcx_u64,(uint32_t fEFlags, uint64_t *puDst, uint64_t uSrc)) 19299 19305 { 19300 19306 ADX_EMIT(X86_EFL_CF, uint64_t, UINT64_MAX); 19307 return fEFlags; 19301 19308 } 19302 19309 … … 19307 19314 * ADOX 19308 19315 */ 19309 IEM_DECL_IMPL_DEF( void, iemAImpl_adox_u32_fallback,(uint32_t *puDst, uint32_t uSrc, uint32_t *pfEFlags))19316 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_adox_u32_fallback,(uint32_t fEFlags, uint32_t *puDst, uint32_t uSrc)) 19310 19317 { 19311 19318 ADX_EMIT(X86_EFL_OF, uint32_t, UINT32_MAX); 19312 } 19313 19314 IEM_DECL_IMPL_DEF(void, iemAImpl_adox_u64_fallback,(uint64_t *puDst, uint64_t uSrc, uint32_t *pfEFlags)) 19319 return fEFlags; 19320 } 19321 19322 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_adox_u64_fallback,(uint32_t fEFlags, uint64_t *puDst, uint64_t uSrc)) 19315 19323 { 19316 19324 ADX_EMIT(X86_EFL_OF, uint64_t, UINT64_MAX); 19325 return fEFlags; 19317 19326 } 19318 19327 19319 19328 # if defined(IEM_WITHOUT_ASSEMBLY) 19320 19329 19321 IEM_DECL_IMPL_DEF( void, iemAImpl_adox_u32,(uint32_t *puDst, uint32_t uSrc, uint32_t *pfEFlags))19330 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_adox_u32,(uint32_t fEFlags, uint32_t *puDst, uint32_t uSrc)) 19322 19331 { 19323 19332 ADX_EMIT(X86_EFL_OF, uint32_t, UINT32_MAX); 19324 } 19325 19326 IEM_DECL_IMPL_DEF(void, iemAImpl_adox_u64,(uint64_t *puDst, uint64_t uSrc, uint32_t *pfEFlags)) 19333 return fEFlags; 19334 } 19335 19336 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_adox_u64,(uint32_t fEFlags, uint64_t *puDst, uint64_t uSrc)) 19327 19337 { 19328 19338 ADX_EMIT(X86_EFL_OF, uint64_t, UINT64_MAX); 19339 return fEFlags; 19329 19340 } 19330 19341 -
trunk/src/VBox/VMM/VMMAll/IEMAllInstOneByte.cpp.h
r104206 r104208 3150 3150 IEM_MC_BEGIN(IEM_MC_F_MIN_286 | IEM_MC_F_NOT_64BIT, 0); 3151 3151 IEMOP_HLP_DECODED_NL_2(OP_ARPL, IEMOPFORM_MR_REG, OP_PARM_Ew, OP_PARM_Gw, DISOPTYPE_HARMLESS); 3152 IEM_MC_ARG(uint16_t *, pu16Dst, 0); 3153 IEM_MC_ARG(uint16_t, u16Src, 1); 3154 IEM_MC_ARG(uint32_t *, pEFlags, 2); 3155 3152 IEM_MC_ARG(uint16_t, u16Src, 2); 3156 3153 IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG_8(bRm)); 3154 IEM_MC_ARG(uint16_t *, pu16Dst, 1); 3157 3155 IEM_MC_REF_GREG_U16(pu16Dst, IEM_GET_MODRM_RM_8(bRm)); 3158 IEM_MC_REF_EFLAGS(pEFlags); 3159 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_arpl, pu16Dst, u16Src, pEFlags); 3156 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); 3157 IEM_MC_CALL_AIMPL_3(uint32_t, fEFlagsRet, iemAImpl_arpl, fEFlagsIn, pu16Dst, u16Src); 3158 IEM_MC_COMMIT_EFLAGS(fEFlagsRet); 3160 3159 3161 3160 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 3166 3165 /* Memory */ 3167 3166 IEM_MC_BEGIN(IEM_MC_F_MIN_286 | IEM_MC_F_NOT_64BIT, 0); 3168 IEM_MC_ARG(uint16_t *, pu16Dst, 0);3169 IEM_MC_ARG(uint16_t, u16Src, 1);3170 3167 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3171 IEM_MC_LOCAL(uint8_t, bUnmapInfo);3172 3173 3168 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3174 3169 IEMOP_HLP_DECODED_NL_2(OP_ARPL, IEMOPFORM_MR_REG, OP_PARM_Ew, OP_PARM_Gw, DISOPTYPE_HARMLESS); 3170 3171 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 3172 IEM_MC_ARG(uint16_t *, pu16Dst, 1); 3175 3173 IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 3174 IEM_MC_ARG(uint16_t, u16Src, 2); 3176 3175 IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG_8(bRm)); 3177 IEM_MC_ARG_ LOCAL_EFLAGS(pEFlags, EFlags, 2);3178 IEM_MC_CALL_ VOID_AIMPL_3(iemAImpl_arpl, pu16Dst, u16Src, pEFlags);3176 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); 3177 IEM_MC_CALL_AIMPL_3(uint32_t, fEFlagsRet, iemAImpl_arpl, fEFlagsIn, pu16Dst, u16Src); 3179 3178 3180 3179 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(bUnmapInfo); 3181 IEM_MC_COMMIT_EFLAGS( EFlags);3180 IEM_MC_COMMIT_EFLAGS(fEFlagsRet); 3182 3181 IEM_MC_ADVANCE_RIP_AND_FINISH(); 3183 3182 IEM_MC_END(); -
trunk/src/VBox/VMM/VMMAll/IEMAllInstThree0f38.cpp.h
r104103 r104208 2031 2031 IEM_MC_BEGIN(IEM_MC_F_64BIT, 0); \ 2032 2032 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \ 2033 IEM_MC_ARG(uint64_t *, pu64Dst, 0); \ 2034 IEM_MC_ARG(uint64_t, u64Src, 1); \ 2035 IEM_MC_ARG(uint32_t *, pEFlags, 2); \ 2033 IEM_MC_ARG(uint64_t, u64Src, 2); \ 2036 2034 IEM_MC_FETCH_GREG_U64(u64Src, IEM_GET_MODRM_RM(pVCpu, bRm)); \ 2035 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 2037 2036 IEM_MC_REF_GREG_U64(pu64Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); \ 2038 IEM_MC_REF_EFLAGS(pEFlags); \ 2039 IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAdx, iemAImpl_## a_Variant ##_u64, iemAImpl_## a_Variant ##_u64_fallback), \ 2040 pu64Dst, u64Src, pEFlags); \ 2037 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 2038 IEM_MC_CALL_AIMPL_3(uint32_t, fEFlagsRet, \ 2039 IEM_SELECT_HOST_OR_FALLBACK(fAdx, iemAImpl_## a_Variant ##_u64, iemAImpl_## a_Variant ##_u64_fallback), \ 2040 fEFlagsIn, pu64Dst, u64Src); \ 2041 IEM_MC_COMMIT_EFLAGS(fEFlagsRet); \ 2041 2042 IEM_MC_ADVANCE_RIP_AND_FINISH(); \ 2042 2043 IEM_MC_END(); \ … … 2045 2046 { \ 2046 2047 IEM_MC_BEGIN(IEM_MC_F_64BIT, 0); \ 2047 IEM_MC_ARG(uint64_t *, pu64Dst, 0); \2048 IEM_MC_ARG(uint64_t, u64Src, 1); \2049 IEM_MC_ARG(uint32_t *, pEFlags, 2); \2050 2048 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); \ 2051 2049 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 1); \ 2052 2050 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \ 2051 \ 2052 IEM_MC_ARG(uint64_t, u64Src, 2); \ 2053 2053 IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \ 2054 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 2054 2055 IEM_MC_REF_GREG_U64(pu64Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); \ 2055 IEM_MC_REF_EFLAGS(pEFlags); \ 2056 IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAdx, iemAImpl_## a_Variant ##_u64, iemAImpl_## a_Variant ##_u64_fallback), \ 2057 pu64Dst, u64Src, pEFlags); \ 2056 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 2057 IEM_MC_CALL_AIMPL_3(uint32_t, fEFlagsRet, \ 2058 IEM_SELECT_HOST_OR_FALLBACK(fAdx, iemAImpl_## a_Variant ##_u64, iemAImpl_## a_Variant ##_u64_fallback), \ 2059 fEFlagsIn, pu64Dst, u64Src); \ 2060 IEM_MC_COMMIT_EFLAGS(fEFlagsRet); \ 2058 2061 IEM_MC_ADVANCE_RIP_AND_FINISH(); \ 2059 2062 IEM_MC_END(); \ … … 2066 2069 IEM_MC_BEGIN(IEM_MC_F_NOT_286_OR_OLDER, 0); \ 2067 2070 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \ 2068 IEM_MC_ARG(uint32_t *, pu32Dst, 0); \ 2069 IEM_MC_ARG(uint32_t, u32Src, 1); \ 2070 IEM_MC_ARG(uint32_t *, pEFlags, 2); \ 2071 IEM_MC_ARG(uint32_t, u32Src, 2); \ 2071 2072 IEM_MC_FETCH_GREG_U32(u32Src, IEM_GET_MODRM_RM(pVCpu, bRm)); \ 2073 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 2072 2074 IEM_MC_REF_GREG_U32(pu32Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); \ 2073 IEM_MC_REF_EFLAGS(pEFlags); \ 2074 IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAdx, iemAImpl_## a_Variant ##_u32, iemAImpl_## a_Variant ##_u32_fallback), \ 2075 pu32Dst, u32Src, pEFlags); \ 2075 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 2076 IEM_MC_CALL_AIMPL_3(uint32_t, fEFlagsRet, \ 2077 IEM_SELECT_HOST_OR_FALLBACK(fAdx, iemAImpl_## a_Variant ##_u32, iemAImpl_## a_Variant ##_u32_fallback), \ 2078 fEFlagsIn, pu32Dst, u32Src); \ 2079 IEM_MC_COMMIT_EFLAGS(fEFlagsRet); \ 2076 2080 IEM_MC_ADVANCE_RIP_AND_FINISH(); \ 2077 2081 IEM_MC_END(); \ … … 2080 2084 { \ 2081 2085 IEM_MC_BEGIN(IEM_MC_F_NOT_286_OR_OLDER, 0); \ 2082 IEM_MC_ARG(uint32_t *, pu32Dst, 0); \2083 IEM_MC_ARG(uint32_t, u32Src, 1); \2084 IEM_MC_ARG(uint32_t *, pEFlags, 2); \2085 2086 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); \ 2086 2087 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 1); \ 2087 2088 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \ 2089 \ 2090 IEM_MC_ARG(uint32_t, u32Src, 2); \ 2088 2091 IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \ 2092 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 2089 2093 IEM_MC_REF_GREG_U32(pu32Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); \ 2090 IEM_MC_REF_EFLAGS(pEFlags); \ 2091 IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAdx, iemAImpl_## a_Variant ##_u32, iemAImpl_## a_Variant ##_u32_fallback), \ 2092 pu32Dst, u32Src, pEFlags); \ 2094 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 2095 IEM_MC_CALL_AIMPL_3(uint32_t, fEFlagsRet, \ 2096 IEM_SELECT_HOST_OR_FALLBACK(fAdx, iemAImpl_## a_Variant ##_u32, iemAImpl_## a_Variant ##_u32_fallback), \ 2097 fEFlagsIn, pu32Dst, u32Src); \ 2098 IEM_MC_COMMIT_EFLAGS(fEFlagsRet); \ 2093 2099 IEM_MC_ADVANCE_RIP_AND_FINISH(); \ 2094 2100 IEM_MC_END(); \ -
trunk/src/VBox/VMM/include/IEMInternal.h
r104207 r104208 2997 2997 /** @name Misc. 2998 2998 * @{ */ 2999 FNIEMAIMPLBIN TODOU16 iemAImpl_arpl;2999 FNIEMAIMPLBINU16 iemAImpl_arpl; 3000 3000 /** @} */ 3001 3001 … … 3019 3019 /** @name ADOX and ADCX 3020 3020 * @{ */ 3021 FNIEMAIMPLBIN TODOU32 iemAImpl_adcx_u32, iemAImpl_adcx_u32_fallback;3022 FNIEMAIMPLBIN TODOU64 iemAImpl_adcx_u64, iemAImpl_adcx_u64_fallback;3023 FNIEMAIMPLBIN TODOU32 iemAImpl_adox_u32, iemAImpl_adox_u32_fallback;3024 FNIEMAIMPLBIN TODOU64 iemAImpl_adox_u64, iemAImpl_adox_u64_fallback;3021 FNIEMAIMPLBINU32 iemAImpl_adcx_u32, iemAImpl_adcx_u32_fallback; 3022 FNIEMAIMPLBINU64 iemAImpl_adcx_u64, iemAImpl_adcx_u64_fallback; 3023 FNIEMAIMPLBINU32 iemAImpl_adox_u32, iemAImpl_adox_u32_fallback; 3024 FNIEMAIMPLBINU64 iemAImpl_adox_u64, iemAImpl_adox_u64_fallback; 3025 3025 /** @} */ 3026 3026 -
trunk/src/VBox/VMM/testcase/tstIEMAImpl.cpp
r104207 r104208 1951 1951 ENTRY_BIN_AMD( imul_two_u16, X86_EFL_PF | X86_EFL_AF | X86_EFL_ZF | X86_EFL_SF), 1952 1952 ENTRY_BIN_INTEL(imul_two_u16, X86_EFL_PF | X86_EFL_AF | X86_EFL_ZF | X86_EFL_SF), 1953 #if 0 /** @todo convert to new eflags format */1954 1953 ENTRY_BIN(arpl), 1955 #endif1956 1954 }; 1957 1955 TEST_BINARY_OPS(16, uint16_t, "%#06x", BINU16_TEST_T, g_aBinU16) … … 1999 1997 ENTRY_BIN_AMD( imul_two_u32, X86_EFL_PF | X86_EFL_AF | X86_EFL_ZF | X86_EFL_SF), 2000 1998 ENTRY_BIN_INTEL(imul_two_u32, X86_EFL_PF | X86_EFL_AF | X86_EFL_ZF | X86_EFL_SF), 2001 #if 0 /** @todo convert to new eflags format */2002 1999 ENTRY_BIN(adcx_u32), 2003 2000 ENTRY_BIN(adox_u32), 2004 #endif2005 2001 }; 2006 2002 TEST_BINARY_OPS(32, uint32_t, "%#010RX32", BINU32_TEST_T, g_aBinU32) … … 2048 2044 ENTRY_BIN_AMD( imul_two_u64, X86_EFL_PF | X86_EFL_AF | X86_EFL_ZF | X86_EFL_SF), 2049 2045 ENTRY_BIN_INTEL(imul_two_u64, X86_EFL_PF | X86_EFL_AF | X86_EFL_ZF | X86_EFL_SF), 2050 #if 0 /** @todo convert to new eflags format */2051 2046 ENTRY_BIN(adcx_u64), 2052 2047 ENTRY_BIN(adox_u64), 2053 #endif2054 2048 /** @todo popcnt */ 2055 2049 /** @todo tzcnt */
Note:
See TracChangeset
for help on using the changeset viewer.