]> gitweb.factorcode.org Git - factor.git/blob - basis/cpu/x86/32/bootstrap.factor
ba963ab477d2f087df299394f8fb1319255558f9
[factor.git] / basis / cpu / x86 / 32 / bootstrap.factor
1 ! Copyright (C) 2007 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: bootstrap.image.private kernel namespaces system
4 cpu.x86.assembler layouts vocabs parser compiler.constants ;
5 IN: bootstrap.x86
6
7 4 \ cell set
8
9 : stack-frame-size ( -- n ) 4 bootstrap-cells ;
10 : shift-arg ( -- reg ) ECX ;
11 : div-arg ( -- reg ) EAX ;
12 : mod-arg ( -- reg ) EDX ;
13 : arg0 ( -- reg ) EAX ;
14 : arg1 ( -- reg ) EDX ;
15 : temp-reg ( -- reg ) EBX ;
16 : stack-reg ( -- reg ) ESP ;
17 : ds-reg ( -- reg ) ESI ;
18 : rs-reg ( -- reg ) EDI ;
19 : fixnum>slot@ ( -- ) arg0 1 SAR ;
20 : rex-length ( -- n ) 0 ;
21
22 [
23     arg0 0 [] MOV                              ! load stack_chain
24     arg0 [] stack-reg MOV                      ! save stack pointer
25 ] rc-absolute-cell rt-stack-chain 2 jit-save-stack jit-define
26
27 [
28     (JMP) drop
29 ] rc-relative rt-primitive 1 jit-primitive jit-define
30
31 << "resource:basis/cpu/x86/bootstrap.factor" parse-file parsed >>
32 call