Browse Source

remove stack frame set up and restore instructions from redirector

cache-refactoring
Aleksey Demakov 18 years ago
parent
commit
5630eb60fb
  1. 5
      ChangeLog
  2. 7
      jit/jit-apply-x86.c
  3. 2
      jit/jit-apply-x86.h

5
ChangeLog

@ -1,3 +1,8 @@
2007-01-26 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-apply-x86.c (_jit_create_redirector): redirector does not
use stack frame so remove frame set up and restore instructions.
2007-01-23 Aleksey Demakov <ademakov@gmail.com> 2007-01-23 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-internal.h, jit/jit-function.c: remove the closure_entry * jit/jit-internal.h, jit/jit-function.c: remove the closure_entry

7
jit/jit-apply-x86.c

@ -170,10 +170,6 @@ void *_jit_create_redirector(unsigned char *buf, void *func,
{ {
void *start = (void *)buf; void *start = (void *)buf;
/* Set up a new stack frame */
x86_push_reg(buf, X86_EBP);
x86_mov_reg_reg(buf, X86_EBP, X86_ESP, 4);
/* Save the fastcall registers, if necessary */ /* Save the fastcall registers, if necessary */
#if JIT_APPLY_X86_FASTCALL == 1 #if JIT_APPLY_X86_FASTCALL == 1
if(abi == (int)jit_abi_fastcall) if(abi == (int)jit_abi_fastcall)
@ -201,9 +197,6 @@ void *_jit_create_redirector(unsigned char *buf, void *func,
} }
#endif #endif
/* Restore the value of EBP */
x86_pop_reg(buf, X86_EBP);
/* Jump to the function that the redirector indicated */ /* Jump to the function that the redirector indicated */
x86_jump_reg(buf, X86_EAX); x86_jump_reg(buf, X86_EAX);

2
jit/jit-apply-x86.h

@ -346,7 +346,7 @@
* The number of bytes that are needed for a redirector stub. * The number of bytes that are needed for a redirector stub.
* This includes any extra bytes that are needed for alignment. * This includes any extra bytes that are needed for alignment.
*/ */
#define jit_redirector_size 32 #define jit_redirector_size 24
/* /*
* The number of bytes that are needed for a indirector stub. * The number of bytes that are needed for a indirector stub.

Loading…
Cancel
Save