Changeset 103636 in vbox
- Timestamp:
- Mar 1, 2024 2:56:49 PM (9 months ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllN8veHlpA-arm64.S
r103377 r103636 35 35 36 36 BEGINCODE 37 38 .extern NAME(iemThreadedFunc_BltIn_LogCpuStateWorker) 39 37 40 /** 38 41 * This does the epilogue of a TB, given the RBP for the frame and eax value to return. … … 75 78 brk #1 76 79 80 81 82 #define IEMNATIVE_HLP_FRAME_SIZE (11 * 16) 83 84 ;; 85 ; This is wrapper function that saves and restores all volatile registers 86 ; so the impact of inserting LogCpuState is minimal to the other TB code. 87 ; 88 .p2align 2 89 .private_extern NAME(iemNativeHlpAsmSafeWrapLogCpuState) 90 .globl NAME(iemNativeHlpAsmSafeWrapLogCpuState) 91 NAME(iemNativeHlpAsmSafeWrapLogCpuState): 92 #ifdef RT_OS_DARWIN 93 pacibsp 94 #endif 95 96 ; 97 ; Save all volatile registers. 98 ; 99 stp x29, x30, [sp, #-IEMNATIVE_HLP_FRAME_SIZE]! 100 stp x0, x1, [sp, #( 1 * 16)] 101 stp x2, x3, [sp, #( 2 * 16)] 102 stp x4, x5, [sp, #( 3 * 16)] 103 stp x5, x6, [sp, #( 4 * 16)] 104 stp x7, x8, [sp, #( 5 * 16)] 105 stp x9, x10, [sp, #( 6 * 16)] 106 stp x11, x12, [sp, #( 7 * 16)] 107 stp x13, x14, [sp, #( 8 * 16)] 108 stp x15, x16, [sp, #( 9 * 16)] 109 stp x17, x18, [sp, #(10 * 16)] 110 111 ; 112 ; Move the pVCpu pointer from the fixed register to the first argument. 113 ; @todo This needs syncing with what we use in IEMN8veRecompiler.h 114 ; but we can't include that header right now, would need some #ifndef IN_ASM_CODE... 115 ; in the header or splitting up the header into a asm safe one and a one included from C/C++. 116 ; 117 mov x0, x28 118 119 ; 120 ; Call C function to do the actual work. 121 ; 122 bl NAME(iemThreadedFunc_BltIn_LogCpuStateWorker) 123 124 ; 125 ; Restore volatile registers and return to the TB code. 126 ; 127 ldp x29, x30, [sp, #( 0 * 16)] 128 ldp x0, x1, [sp, #( 1 * 16)] 129 ldp x2, x3, [sp, #( 2 * 16)] 130 ldp x4, x5, [sp, #( 3 * 16)] 131 ldp x5, x6, [sp, #( 4 * 16)] 132 ldp x7, x8, [sp, #( 5 * 16)] 133 ldp x9, x10, [sp, #( 6 * 16)] 134 ldp x11, x12, [sp, #( 7 * 16)] 135 ldp x13, x14, [sp, #( 8 * 16)] 136 ldp x15, x16, [sp, #( 9 * 16)] 137 ldp x17, x18, [sp, #(10 * 16)] 138 add sp, sp, #IEMNATIVE_HLP_FRAME_SIZE 139 140 #ifdef RT_OS_DARWIN 141 retab 142 #else 143 ret 144 #endif 145 brk #1 -
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompBltIn.cpp
r103318 r103636 62 62 * TB Helper Functions * 63 63 *********************************************************************************************************************************/ 64 #if def RT_ARCH_AMD6464 #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_ARM64) 65 65 DECLASM(void) iemNativeHlpAsmSafeWrapLogCpuState(void); 66 66 #endif … … 155 155 /* pop rax */ 156 156 pbCodeBuf[off++] = 0x58 + X86_GREG_xAX; 157 #else 158 off = iemNativeEmitCallImm(pReNative, off, (uintptr_t)iemNativeHlpAsmSafeWrapLogCpuState); 159 RT_NOREF(pCallEntry); 160 #endif 161 157 162 IEMNATIVE_ASSERT_INSTR_BUF_ENSURE(pReNative, off); 158 159 #else160 /** @todo Implement this */161 AssertFailed();162 RT_NOREF(pReNative, pCallEntry);163 #endif164 163 return off; 165 164 }
Note:
See TracChangeset
for help on using the changeset viewer.