[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