Merge branch 'master' of git://factorcode.org/git/factor
commit
c9f041f79d
|
@ -10,6 +10,7 @@ IN: bootstrap.x86
|
||||||
: shift-arg ( -- reg ) ECX ;
|
: shift-arg ( -- reg ) ECX ;
|
||||||
: div-arg ( -- reg ) EAX ;
|
: div-arg ( -- reg ) EAX ;
|
||||||
: mod-arg ( -- reg ) EDX ;
|
: mod-arg ( -- reg ) EDX ;
|
||||||
|
: arg ( -- reg ) EAX ;
|
||||||
: temp0 ( -- reg ) EAX ;
|
: temp0 ( -- reg ) EAX ;
|
||||||
: temp1 ( -- reg ) EDX ;
|
: temp1 ( -- reg ) EDX ;
|
||||||
: temp2 ( -- reg ) ECX ;
|
: temp2 ( -- reg ) ECX ;
|
||||||
|
|
|
@ -5,6 +5,7 @@ cpu.x86.assembler layouts vocabs parser ;
|
||||||
IN: bootstrap.x86
|
IN: bootstrap.x86
|
||||||
|
|
||||||
: stack-frame-size ( -- n ) 4 bootstrap-cells ;
|
: stack-frame-size ( -- n ) 4 bootstrap-cells ;
|
||||||
|
: arg ( -- reg ) RDI ;
|
||||||
|
|
||||||
<< "resource:basis/cpu/x86/64/bootstrap.factor" parse-file parsed >>
|
<< "resource:basis/cpu/x86/64/bootstrap.factor" parse-file parsed >>
|
||||||
call
|
call
|
||||||
|
|
|
@ -5,6 +5,7 @@ cpu.x86.assembler layouts vocabs parser ;
|
||||||
IN: bootstrap.x86
|
IN: bootstrap.x86
|
||||||
|
|
||||||
: stack-frame-size ( -- n ) 8 bootstrap-cells ;
|
: stack-frame-size ( -- n ) 8 bootstrap-cells ;
|
||||||
|
: arg ( -- reg ) RCX ;
|
||||||
|
|
||||||
<< "resource:basis/cpu/x86/64/bootstrap.factor" parse-file parsed >>
|
<< "resource:basis/cpu/x86/64/bootstrap.factor" parse-file parsed >>
|
||||||
call
|
call
|
||||||
|
|
|
@ -162,11 +162,11 @@ big-endian off
|
||||||
! Quotations and words
|
! Quotations and words
|
||||||
[
|
[
|
||||||
! load from stack
|
! load from stack
|
||||||
temp0 ds-reg [] MOV
|
arg ds-reg [] MOV
|
||||||
! pop stack
|
! pop stack
|
||||||
ds-reg bootstrap-cell SUB
|
ds-reg bootstrap-cell SUB
|
||||||
! call quotation
|
! call quotation
|
||||||
temp0 quot-xt-offset [+] JMP
|
arg quot-xt-offset [+] JMP
|
||||||
] f f f \ (call) define-sub-primitive
|
] f f f \ (call) define-sub-primitive
|
||||||
|
|
||||||
[
|
[
|
||||||
|
|
|
@ -6,8 +6,10 @@ continuations debugger math ;
|
||||||
IN: benchmark
|
IN: benchmark
|
||||||
|
|
||||||
: run-benchmark ( vocab -- result )
|
: run-benchmark ( vocab -- result )
|
||||||
|
[ "=== " write vocab-name print flush ] [
|
||||||
[ [ require ] [ [ run ] benchmark ] bi ] curry
|
[ [ require ] [ [ run ] benchmark ] bi ] curry
|
||||||
[ error. f ] recover ;
|
[ error. f ] recover
|
||||||
|
] bi ;
|
||||||
|
|
||||||
: run-benchmarks ( -- assoc )
|
: run-benchmarks ( -- assoc )
|
||||||
"benchmark" all-child-vocabs-seq
|
"benchmark" all-child-vocabs-seq
|
||||||
|
|
Loading…
Reference in New Issue