: register->memory ( from to -- )
[ [ 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 -- )
swap [ reg>> ] [ [ reg>> ] [ rep>> ] bi ] bi* ##copy, ;
: mapping-instructions ( alist -- insns )
[ swap ] H{ } assoc-map-as [
[ temp-location ] [ swap >insn ] parallel-mapping
- ##branch
+ ##branch,
] { } make ;
: perform-mappings ( bb to mappings -- )
: parallel-copy ( mapping -- )
! 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
: parallel-copy-rep ( mapping -- )
! mapping is a list of { dst src } pairs
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 ;
] each ;
: insert-edge-copies ( from to copies -- )
- [ ##parallel-copy ##branch ] { } make insert-basic-block ;
+ [ ##parallel-copy, ##branch, ] { } make insert-basic-block ;
: insert-copies ( bb -- )
[ copies get ] dip '[
! The result of reading 4 bytes from memory is a fixnum on
! x86-64.
-enable-alien-4-intrinsics
+! enable-alien-4-intrinsics
{
{ [ os unix? ] [ "cpu.x86.64.unix" require ] }
{ [ os windows? ] [ "cpu.x86.64.windows" require ] }
} cond
-check-cpu-features
+! check-cpu-features
} cond
[
- "FACTOR_ROOTS" os-env
- [
- os windows? ";" ":" ? split
- [ add-vocab-root ] each
- ] when*
+ ! "FACTOR_ROOTS" os-env
+ ! [
+ ! os windows? ";" ":" ? split
+ ! [ add-vocab-root ] each
+ ! ] when*
] "environment" add-startup-hook