From 6b744e5cd66c30e293f12b4231db57246d9d8905 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 13 Dec 2004 23:40:21 +0000 Subject: [PATCH] clean up x86 generator, add SDL and alien to bootstrap --- library/bootstrap/boot-stage2.factor | 27 +++++++++++---------------- library/compiler/alien.factor | 18 +++++++++--------- library/compiler/generator-x86.factor | 9 ++------- library/compiler/linearizer.factor | 23 +++++++++++++++-------- 4 files changed, 37 insertions(+), 40 deletions(-) diff --git a/library/bootstrap/boot-stage2.factor b/library/bootstrap/boot-stage2.factor index c44de529a3..5dead6a080 100644 --- a/library/bootstrap/boot-stage2.factor +++ b/library/bootstrap/boot-stage2.factor @@ -113,12 +113,21 @@ USE: stdio "/library/inference/branches.factor" "/library/inference/stack.factor" - "/library/compiler/optimizer.factor" - "/library/compiler/linearizer.factor" "/library/compiler/assembler.factor" "/library/compiler/xt.factor" + "/library/compiler/optimizer.factor" + "/library/compiler/linearizer.factor" "/library/compiler/generator.factor" "/library/compiler/compiler.factor" + "/library/compiler/alien-types.factor" + "/library/compiler/alien.factor" + + "/library/sdl/sdl.factor" + "/library/sdl/sdl-video.factor" + "/library/sdl/sdl-event.factor" + "/library/sdl/sdl-gfx.factor" + "/library/sdl/sdl-keysym.factor" + "/library/sdl/sdl-utils.factor" "/library/bootstrap/image.factor" "/library/bootstrap/cross-compiler.factor" @@ -149,21 +158,7 @@ cpu "x86" = [ [ "/library/compiler/assembly-x86.factor" "/library/compiler/generator-x86.factor" -! "/library/compiler/compiler-macros.factor" -! "/library/compiler/ifte.factor" -! "/library/compiler/generic.factor" -! "/library/compiler/stack.factor" -! "/library/compiler/interpret-only.factor" -! "/library/compiler/alien-types.factor" ! "/library/compiler/alien-macros.factor" -! "/library/compiler/alien.factor" -! -! "/library/sdl/sdl.factor" -! "/library/sdl/sdl-video.factor" -! "/library/sdl/sdl-event.factor" -! "/library/sdl/sdl-gfx.factor" -! "/library/sdl/sdl-keysym.factor" -! "/library/sdl/sdl-utils.factor" ] [ dup print run-resource diff --git a/library/compiler/alien.factor b/library/compiler/alien.factor index f6fd713986..5e5e481764 100644 --- a/library/compiler/alien.factor +++ b/library/compiler/alien.factor @@ -73,12 +73,12 @@ USE: words : alien-function ( function library -- ) [ library dlsym ] [ dlsym-self ] ifte* ; -: compile-alien-call - pop-literal reverse PARAMETERS >r - pop-literal pop-literal alien-function CALL JUMP-FIXUP - r> CLEANUP - pop-literal RETURNS ; - -global [ "libraries" set ] bind - -\ alien-call [ compile-alien-call ] "compiling" set-word-property +! : compile-alien-call +! pop-literal reverse PARAMETERS >r +! pop-literal pop-literal alien-function CALL JUMP-FIXUP +! r> CLEANUP +! pop-literal RETURNS ; +! +! global [ "libraries" set ] bind +! +! \ alien-call [ compile-alien-call ] "compiling" set-word-property diff --git a/library/compiler/generator-x86.factor b/library/compiler/generator-x86.factor index 1f342beb1a..92b78c375d 100644 --- a/library/compiler/generator-x86.factor +++ b/library/compiler/generator-x86.factor @@ -57,19 +57,14 @@ USE: words ] "generator" set-word-property #call [ - dup postpone-word CALL compiled-offset defer-xt ] "generator" set-word-property -#call-label [ - CALL compiled-offset defer-xt -] "generator" set-word-property - -#jump-label [ +#jump [ JUMP compiled-offset defer-xt ] "generator" set-word-property -#jump-label-t [ +#jump-t [ POP-DS ! condition is now in EAX f address EAX CMP-I-R diff --git a/library/compiler/linearizer.factor b/library/compiler/linearizer.factor index ccc3baaf0c..2267134df4 100644 --- a/library/compiler/linearizer.factor +++ b/library/compiler/linearizer.factor @@ -44,8 +44,7 @@ USE: errors SYMBOL: #push-immediate SYMBOL: #push-indirect -SYMBOL: #jump-label-t ( branch if top of stack is true ) -SYMBOL: #jump-label ( unconditional branch ) +SYMBOL: #jump-t ( branch if top of stack is true ) SYMBOL: #jump ( tail-call ) SYMBOL: #return-to ( push addr on C stack ) @@ -87,8 +86,18 @@ SYMBOL: #target ( part of jump table ) swons , ] "linearizer" set-word-property +#call [ + dup [ node-param get ] bind postpone-word + linear, +] "linearizer" set-word-property + +#call-label [ + [ node-param get ] bind #call swons , +] "linearizer" set-word-property + :