Changeset 105252 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Jul 10, 2024 8:23:04 AM (7 months ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r105238 r105252 17134 17134 17135 17135 17136 #ifdef IEM_WITHOUT_ASSEMBLY17137 17136 /** 17138 * RSQRTPS17137 * [V]RSQRTPS 17139 17138 */ 17140 17139 static uint32_t iemAImpl_rsqrt_worker(PRTFLOAT32U pr32Res, uint32_t fMxcsr, PCRTFLOAT32U pr32Val) … … 17162 17161 17163 17162 17163 #ifdef IEM_WITHOUT_ASSEMBLY 17164 17164 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_rsqrtps_u128,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCX86XMMREG puSrc2)) 17165 17165 { … … 17171 17171 | iemAImpl_rsqrt_worker(&pResult->ar32[3], uMxCsrIn, &puSrc2->ar32[3]); 17172 17172 } 17173 #endif 17174 17175 17176 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vrsqrtps_u128_fallback,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc)) 17177 { 17178 return iemAImpl_rsqrt_worker(&pResult->ar32[0], uMxCsrIn, &puSrc->ar32[0]) 17179 | iemAImpl_rsqrt_worker(&pResult->ar32[1], uMxCsrIn, &puSrc->ar32[1]) 17180 | iemAImpl_rsqrt_worker(&pResult->ar32[2], uMxCsrIn, &puSrc->ar32[2]) 17181 | iemAImpl_rsqrt_worker(&pResult->ar32[3], uMxCsrIn, &puSrc->ar32[3]); 17182 } 17183 17184 17185 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vrsqrtps_u256_fallback,(uint32_t uMxCsrIn, PX86YMMREG pResult, PCX86YMMREG puSrc)) 17186 { 17187 return iemAImpl_rsqrt_worker(&pResult->ar32[0], uMxCsrIn, &puSrc->ar32[0]) 17188 | iemAImpl_rsqrt_worker(&pResult->ar32[1], uMxCsrIn, &puSrc->ar32[1]) 17189 | iemAImpl_rsqrt_worker(&pResult->ar32[2], uMxCsrIn, &puSrc->ar32[2]) 17190 | iemAImpl_rsqrt_worker(&pResult->ar32[3], uMxCsrIn, &puSrc->ar32[3]) 17191 | iemAImpl_rsqrt_worker(&pResult->ar32[4], uMxCsrIn, &puSrc->ar32[4]) 17192 | iemAImpl_rsqrt_worker(&pResult->ar32[5], uMxCsrIn, &puSrc->ar32[5]) 17193 | iemAImpl_rsqrt_worker(&pResult->ar32[6], uMxCsrIn, &puSrc->ar32[6]) 17194 | iemAImpl_rsqrt_worker(&pResult->ar32[7], uMxCsrIn, &puSrc->ar32[7]); 17195 } 17173 17196 17174 17197 … … 17176 17199 * RSQRTSS 17177 17200 */ 17201 #ifdef IEM_WITHOUT_ASSEMBLY 17178 17202 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_rsqrtss_u128_r32,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCRTFLOAT32U pr32Src2)) 17179 17203 { … … 17184 17208 } 17185 17209 #endif 17210 17211 17212 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vrsqrtss_u128_r32_fallback,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCRTFLOAT32U pr32Src2)) 17213 { 17214 pResult->ar32[1] = puSrc1->ar32[1]; 17215 pResult->ar32[2] = puSrc1->ar32[2]; 17216 pResult->ar32[3] = puSrc1->ar32[3]; 17217 return iemAImpl_rsqrt_worker(&pResult->ar32[0], uMxCsrIn, pr32Src2); 17218 } 17186 17219 17187 17220 -
trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap1.cpp.h
r105238 r105252 2987 2987 2988 2988 /** Opcode VEX.0F 0x52 - vrsqrtps Vps, Wps */ 2989 FNIEMOP_STUB(iemOp_vrsqrtps_Vps_Wps); 2989 FNIEMOP_DEF(iemOp_vrsqrtps_Vps_Wps) 2990 { 2991 IEMOP_MNEMONIC2(VEX_RM, VRSQRTPS, vrsqrtps, Vps, Wps, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, 0); 2992 IEMOPMEDIAF2_INIT_VARS( vrsqrtps); 2993 return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx, &s_Host, &s_Fallback)); 2994 } 2995 2996 2990 2997 /* Opcode VEX.66.0F 0x52 - invalid */ 2998 2999 2991 3000 /** Opcode VEX.F3.0F 0x52 - vrsqrtss Vss, Hss, Wss */ 2992 FNIEMOP_STUB(iemOp_vrsqrtss_Vss_Hss_Wss); 3001 FNIEMOP_DEF(iemOp_vrsqrtss_Vss_Hss_Wss) 3002 { 3003 IEMOP_MNEMONIC3(VEX_RVM, VRSQRTSS, vrsqrtss, Vps, Hps, Wss, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, 0); 3004 return FNIEMOP_CALL_1(iemOpCommonAvx_Vx_Hx_R32, 3005 IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vrsqrtss_u128_r32, iemAImpl_vrsqrtss_u128_r32_fallback)); 3006 } 3007 3008 2993 3009 /* Opcode VEX.F2.0F 0x52 - invalid */ 2994 3010
Note:
See TracChangeset
for help on using the changeset viewer.