[vmkit-commits] [vmkit] r199008 - Avoid one write in trampoline.
Gael Thomas
gael.thomas at lip6.fr
Sat Jan 11 06:14:23 PST 2014
Author: gthomas
Date: Sat Jan 11 08:14:23 2014
New Revision: 199008
URL: http://llvm.org/viewvc/llvm-project?rev=199008&view=rev
Log:
Avoid one write in trampoline.
Modified:
vmkit/branches/mcjit/include/j3/j3trampoline.h
vmkit/branches/mcjit/lib/j3/vm/j3arch-dep.s
vmkit/branches/mcjit/lib/j3/vm/j3trampoline.cc
Modified: vmkit/branches/mcjit/include/j3/j3trampoline.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3trampoline.h?rev=199008&r1=199007&r2=199008&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3trampoline.h (original)
+++ vmkit/branches/mcjit/include/j3/j3trampoline.h Sat Jan 11 08:14:23 2014
@@ -6,7 +6,6 @@
extern "C" uintptr_t trampoline_mask;
extern "C" uintptr_t trampoline_offset;
extern "C" char trampoline_generic;
-extern "C" char trampoline_generic_save;
extern "C" char trampoline_generic_method;
extern "C" char trampoline_generic_resolver;
extern "C" char trampoline_generic_end;
Modified: vmkit/branches/mcjit/lib/j3/vm/j3arch-dep.s
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3arch-dep.s?rev=199008&r1=199007&r2=199008&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3arch-dep.s (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3arch-dep.s Sat Jan 11 08:14:23 2014
@@ -1,20 +1,15 @@
.section __DATA,__data
.globl _trampoline_mask, _trampoline_offset
+ .globl _trampoline_generic, _trampoline_generic_method, _trampoline_generic_resolver, _trampoline_generic_end
_trampoline_mask:
.quad 0
_trampoline_offset:
.quad 0
-
- .section __TEXT,__text,regular,pure_instructions
- .globl _trampoline_generic, _trampoline_generic_save, _trampoline_save, _trampoline_generic_method
- .globl _trampoline_generic_resolver, _trampoline_generic_end, _trampoline_restart
- .align 4
-
+
_trampoline_generic:
- .byte 0x48, 0xb8 /* mov _trampoline_save, %rax */
-_trampoline_generic_save:
- .quad 0
+ .byte 0x48, 0xb8 /* mov _trampoline_save, %rax (absolute adressing, what is the mnemonic?) */
+ .quad _trampoline_save
callq *%rax
mov %rsp, 184(%rax)
.byte 0x48, 0xbe /* mov _trampoline_generic_method, %rsi */
@@ -25,6 +20,10 @@ _trampoline_generic_resolver:
.quad 0
jmpq *%rax
_trampoline_generic_end:
+
+ .section __TEXT,__text,regular,pure_instructions
+ .globl _trampoline_save, _trampoline_restart
+ .align 4
/* compute the adress of the save zone area */
/* and return the adress in %rax */
Modified: vmkit/branches/mcjit/lib/j3/vm/j3trampoline.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3trampoline.cc?rev=199008&r1=199007&r2=199008&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3trampoline.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3trampoline.cc Sat Jan 11 08:14:23 2014
@@ -64,7 +64,6 @@ void* J3Trampoline::buildTrampoline(vmki
memcpy(res, &trampoline_generic, trampolineSize);
- *((char**)(res + (&trampoline_generic_save - &trampoline_generic))) = &trampoline_save;
*((void**)(res + (&trampoline_generic_method - &trampoline_generic))) = (void*)m;
*((void**)(res + (&trampoline_generic_resolver - &trampoline_generic))) = tra;
More information about the vmkit-commits
mailing list