Mac OS X/x86 fixes

release
Slava 2007-09-21 16:43:55 -04:00
parent 8c022cced5
commit d1b70d8b13
7 changed files with 15 additions and 14 deletions

Binary file not shown.

View File

@ -117,6 +117,7 @@ windows-ce-x86:
$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.ce.x86
macosx.app: factor
mkdir -p $(BUNDLE)/Contents/MacOS
cp $(EXECUTABLE) $(BUNDLE)/Contents/MacOS/factor
cp $(ENGINE) $(BUNDLE)/Contents/Frameworks

View File

@ -16,8 +16,7 @@ IN: cpu.x86.32
M: x86-backend ds-reg ESI ;
M: x86-backend rs-reg EDI ;
M: x86-backend stack-reg ESP ;
M: x86-backend frame-reg EBP ;
M: x86-backend xt-reg EDX ;
M: x86-backend xt-reg ECX ;
M: x86-backend stack-save-reg EDX ;
M: temp-reg v>operand drop EBX ;

View File

@ -20,9 +20,9 @@ big-endian off
] { } make jit-setup set
[
EBP ESP -48 [+] LEA ! compute forward chain pointer
EBP PUSH ! save forward chain pointer
xt-reg PUSH ! save XT
xt-reg ESP -44 [+] LEA ! compute forward chain pointer
xt-reg PUSH ! save forward chain pointer
EAX PUSH ! save array
ESP 16 SUB ! reserve space for scan-save
] { } make jit-prolog set

View File

@ -11,7 +11,6 @@ TUPLE: x86-backend cell ;
HOOK: ds-reg compiler-backend
HOOK: rs-reg compiler-backend
HOOK: stack-reg compiler-backend
HOOK: frame-reg compiler-backend
HOOK: xt-reg compiler-backend
HOOK: stack-save-reg compiler-backend
@ -49,8 +48,8 @@ M: x86-backend %save-xt ( -- )
xt-reg compiling-label get MOV ;
M: x86-backend %prologue ( n -- )
frame-reg stack-reg pick stack-frame 5 cells + neg [+] LEA
frame-reg PUSH
xt-reg PUSH
xt-reg stack-reg pick stack-frame 4 cells + neg [+] LEA
xt-reg PUSH
stack-reg swap stack-frame 2 cells - SUB ;

View File

@ -15,10 +15,12 @@ typedef struct _F_STACK_FRAME
In compiled word frames, unused. */
CELL array;
/* Pointer to the next stack frame; frames are chained from
the bottom on up */
struct _F_STACK_FRAME *next;
/* In all compiled frames, the XT on entry. */
XT xt;
struct _F_STACK_FRAME *next;
} F_STACK_FRAME;
#define CALLSTACK_UP_P

View File

@ -4,11 +4,11 @@
void c_to_factor_toplevel(CELL quot)
{
for(;;)
/* for(;;)
{
NS_DURING
NS_DURING */
c_to_factor(quot);
NS_VOIDRETURN;
/* NS_VOIDRETURN;
NS_HANDLER
dpush(allot_alien(F,(CELL)localException));
quot = userenv[COCOA_EXCEPTION_ENV];
@ -16,11 +16,11 @@ NS_HANDLER
{
/* No Cocoa exception handler was registered, so
extra/cocoa/ is not loaded. So we pass the exception
along. */
along. *
[localException raise];
}
NS_ENDHANDLER
}
} */
}
void early_init(void)