starting point - Fix bootstrap; I broke it in merging. Disable environment variables because the compiler isn't loaded yet and can't call C ffi functions, and tools.test loads this vocab.

Disable intrinsics in cpu.x86.64 for now, since they invoke the compiler
Fix ##branch renaming to ##branch,
To work on this branch:
./factor -include=math -i=boot.image
./factor -run=listener
USE: compiler USE: tools.test save
enable-optimizer

Error message is now:
T{ vregs-shouldn't-interfere f 409 424 }
db4
Doug Coleman 2012-05-06 12:06:59 -07:00
parent 07227f22f9
commit a0dd953e33
5 changed files with 11 additions and 17 deletions

View File

@ -76,12 +76,6 @@ SYMBOL: temp-locations
: register->memory ( from to -- ) : register->memory ( from to -- )
[ [ reg>> ] [ rep>> ] bi ] [ reg>> ] bi* ##spill, ; [ [ reg>> ] [ rep>> ] bi ] [ reg>> ] bi* ##spill, ;
: temp->register ( from to -- )
nip [ reg>> ] [ rep>> ] [ rep>> spill-temp ] tri ##reload, ;
: register->temp ( from to -- )
drop [ [ reg>> ] [ rep>> ] bi ] [ rep>> spill-temp ] bi ##spill, ;
: register->register ( from to -- ) : register->register ( from to -- )
swap [ reg>> ] [ [ reg>> ] [ rep>> ] bi ] bi* ##copy, ; swap [ reg>> ] [ [ reg>> ] [ rep>> ] bi ] bi* ##copy, ;
@ -95,7 +89,7 @@ SYMBOL: temp-locations
: mapping-instructions ( alist -- insns ) : mapping-instructions ( alist -- insns )
[ swap ] H{ } assoc-map-as [ [ swap ] H{ } assoc-map-as [
[ temp-location ] [ swap >insn ] parallel-mapping [ temp-location ] [ swap >insn ] parallel-mapping
##branch ##branch,
] { } make ; ] { } make ;
: perform-mappings ( bb to mappings -- ) : perform-mappings ( bb to mappings -- )

View File

@ -60,7 +60,7 @@ PRIVATE>
: parallel-copy ( mapping -- ) : parallel-copy ( mapping -- )
! mapping is a list of { dst src } pairs ! mapping is a list of { dst src } pairs
next-vreg '[ drop _ ] [ any-rep ##copy ] parallel-mapping ; next-vreg '[ drop _ ] [ any-rep ##copy, ] parallel-mapping ;
<PRIVATE <PRIVATE
@ -74,4 +74,4 @@ PRIVATE>
: parallel-copy-rep ( mapping -- ) : parallel-copy-rep ( mapping -- )
! mapping is a list of { dst src } pairs ! mapping is a list of { dst src } pairs
H{ } clone temp-vregs set H{ } clone temp-vregs set
[ rep-of temp-vreg ] [ dup rep-of ##copy ] parallel-mapping ; [ rep-of temp-vreg ] [ dup rep-of ##copy, ] parallel-mapping ;

View File

@ -33,7 +33,7 @@ SYMBOL: copies
] each ; ] each ;
: insert-edge-copies ( from to copies -- ) : insert-edge-copies ( from to copies -- )
[ ##parallel-copy ##branch ] { } make insert-basic-block ; [ ##parallel-copy, ##branch, ] { } make insert-basic-block ;
: insert-copies ( bb -- ) : insert-copies ( bb -- )
[ copies get ] dip '[ [ copies get ] dip '[

View File

@ -145,11 +145,11 @@ M: x86.64 (cpuid) ( rax rcx regs -- )
! The result of reading 4 bytes from memory is a fixnum on ! The result of reading 4 bytes from memory is a fixnum on
! x86-64. ! x86-64.
enable-alien-4-intrinsics ! enable-alien-4-intrinsics
{ {
{ [ os unix? ] [ "cpu.x86.64.unix" require ] } { [ os unix? ] [ "cpu.x86.64.unix" require ] }
{ [ os windows? ] [ "cpu.x86.64.windows" require ] } { [ os windows? ] [ "cpu.x86.64.windows" require ] }
} cond } cond
check-cpu-features ! check-cpu-features

View File

@ -31,9 +31,9 @@ HOOK: set-os-envs-pointer os ( malloc -- )
} cond } cond
[ [
"FACTOR_ROOTS" os-env ! "FACTOR_ROOTS" os-env
[ ! [
os windows? ";" ":" ? split ! os windows? ";" ":" ? split
[ add-vocab-root ] each ! [ add-vocab-root ] each
] when* ! ] when*
] "environment" add-startup-hook ] "environment" add-startup-hook