Mac OS X/x86 fixes
parent
8c022cced5
commit
d1b70d8b13
Binary file not shown.
1
Makefile
1
Makefile
|
@ -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
|
||||
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue