Changeset 106465 in vbox for trunk/src/VBox/VMM/include/IEMN8veRecompilerEmit.h
- Timestamp:
- Oct 18, 2024 12:27:52 AM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/IEMN8veRecompilerEmit.h
r106453 r106465 935 935 */ 936 936 DECL_INLINE_THROW(uint32_t) 937 iemNativeEmitStoreGprToVCpuU32Ex(PIEMNATIVEINSTR pCodeBuf, uint32_t off, uint8_t iGpr, uint32_t offVCpu) 937 iemNativeEmitStoreGprToVCpuU32Ex(PIEMNATIVEINSTR pCodeBuf, uint32_t off, uint8_t iGpr, uint32_t offVCpu, 938 uint8_t iGprTmp = UINT8_MAX) 938 939 { 939 940 #ifdef RT_ARCH_AMD64 … … 943 944 pCodeBuf[off++] = 0x89; 944 945 off = iemNativeEmitGprByVCpuDisp(pCodeBuf, off, iGpr, offVCpu); 945 946 #elif defined(RT_ARCH_ARM64) 947 off = iemNativeEmitGprByVCpuLdStEx(pCodeBuf, off, iGpr, offVCpu, kArmv8A64InstrLdStType_St_Word, sizeof(uint32_t)); 946 RT_NOREF(iGprTmp); 947 948 #elif defined(RT_ARCH_ARM64) 949 off = iemNativeEmitGprByVCpuLdStEx(pCodeBuf, off, iGpr, offVCpu, kArmv8A64InstrLdStType_St_Word, sizeof(uint32_t), iGprTmp); 948 950 949 951 #else … … 971 973 #elif defined(RT_ARCH_ARM64) 972 974 off = iemNativeEmitGprByVCpuLdSt(pReNative, off, iGpr, offVCpu, kArmv8A64InstrLdStType_St_Word, sizeof(uint32_t)); 975 976 #else 977 # error "port me" 978 #endif 979 return off; 980 } 981 982 983 /** 984 * Emits a store of a GPR value to a 16-bit VCpu field. 985 * 986 * @note Limited range on ARM64. 987 */ 988 DECL_INLINE_THROW(uint32_t) 989 iemNativeEmitStoreGprToVCpuU16Ex(PIEMNATIVEINSTR pCodeBuf, uint32_t off, uint8_t iGpr, uint32_t offVCpu, 990 uint8_t iGprTmp = UINT8_MAX) 991 { 992 #ifdef RT_ARCH_AMD64 993 /* mov mem16, reg16 */ 994 pCodeBuf[off++] = X86_OP_PRF_SIZE_OP; 995 if (iGpr >= 8) 996 pCodeBuf[off++] = X86_OP_REX_R; 997 pCodeBuf[off++] = 0x89; 998 off = iemNativeEmitGprByVCpuDisp(pCodeBuf, off, iGpr, offVCpu); 999 RT_NOREF(iGprTmp); 1000 1001 #elif defined(RT_ARCH_ARM64) 1002 off = iemNativeEmitGprByVCpuLdStEx(pCodeBuf, off, iGpr, offVCpu, kArmv8A64InstrLdStType_St_Half, sizeof(uint16_t), iGprTmp); 973 1003 974 1004 #else
Note:
See TracChangeset
for help on using the changeset viewer.