]> gitweb.factorcode.org Git - factor.git/blob - basis/cpu/x86/64/bootstrap.factor
parsed -> suffix!, add append!
[factor.git] / basis / cpu / x86 / 64 / bootstrap.factor
1 ! Copyright (C) 2007, 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: bootstrap.image.private kernel namespaces system
4 layouts vocabs parser compiler.constants math
5 cpu.x86.assembler cpu.x86.assembler.operands sequences ;
6 IN: bootstrap.x86
7
8 8 \ cell set
9
10 : shift-arg ( -- reg ) RCX ;
11 : div-arg ( -- reg ) RAX ;
12 : mod-arg ( -- reg ) RDX ;
13 : temp0 ( -- reg ) RDI ;
14 : temp1 ( -- reg ) RSI ;
15 : temp2 ( -- reg ) RDX ;
16 : temp3 ( -- reg ) RBX ;
17 : safe-reg ( -- reg ) RAX ;
18 : stack-reg ( -- reg ) RSP ;
19 : ds-reg ( -- reg ) R14 ;
20 : rs-reg ( -- reg ) R15 ;
21 : fixnum>slot@ ( -- ) ;
22 : rex-length ( -- n ) 1 ;
23
24 [
25     ! load stack_chain
26     temp0 0 MOV rc-absolute-cell rt-stack-chain jit-rel
27     temp0 temp0 [] MOV
28     ! save stack pointer
29     temp0 [] stack-reg MOV
30     ! load vm ptr
31     arg1 0 MOV rc-absolute-cell rt-vm jit-rel
32     ! load XT
33     temp1 0 MOV rc-absolute-cell rt-primitive jit-rel
34     ! go
35     temp1 JMP
36 ] jit-primitive jit-define
37
38 << "vocab:cpu/x86/bootstrap.factor" parse-file suffix! >>
39 call