Changeset 102720 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Dec 28, 2023 12:28:00 AM (16 months ago)
- svn:sync-xref-src-repo-rev:
- 160892
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/IEMN8veRecompilerEmit.h
r102718 r102720 174 174 * - ARM64: 4 instruction words (16 bytes). 175 175 */ 176 DECLINLINE(uint32_t) iemNativeEmitLoadGprImmEx(PIEMNATIVEINSTR pCodeBuf, uint32_t off, uint8_t iGpr, uint64_t uImm64) 176 DECL_FORCE_INLINE(uint32_t) 177 iemNativeEmitLoadGprImmEx(PIEMNATIVEINSTR pCodeBuf, uint32_t off, uint8_t iGpr, uint64_t uImm64) 177 178 { 178 179 #ifdef RT_ARCH_AMD64 … … 191 192 pCodeBuf[off++] = X86_OP_REX_B; 192 193 pCodeBuf[off++] = 0xb8 + (iGpr & 7); 194 pCodeBuf[off++] = RT_BYTE1(uImm64); 195 pCodeBuf[off++] = RT_BYTE2(uImm64); 196 pCodeBuf[off++] = RT_BYTE3(uImm64); 197 pCodeBuf[off++] = RT_BYTE4(uImm64); 198 } 199 else if (uImm64 == (uint64_t)(int32_t)uImm64) 200 { 201 /* mov gpr, sx(imm32) */ 202 if (iGpr < 8) 203 pCodeBuf[off++] = X86_OP_REX_W; 204 else 205 pCodeBuf[off++] = X86_OP_REX_W | X86_OP_REX_B; 206 pCodeBuf[off++] = 0xc7; 207 pCodeBuf[off++] = X86_MODRM_MAKE(X86_MOD_REG, 0, iGpr & 7); 193 208 pCodeBuf[off++] = RT_BYTE1(uImm64); 194 209 pCodeBuf[off++] = RT_BYTE2(uImm64); … … 3101 3116 if (iGprLeft >= 8) 3102 3117 pCodeBuf[off++] = X86_OP_REX_B; 3103 if (uImm <= UINT32_C(0x ff))3118 if (uImm <= UINT32_C(0x7f)) 3104 3119 { 3105 3120 /* cmp Ev, Ib */
Note:
See TracChangeset
for help on using the changeset viewer.