]> gitweb.factorcode.org Git - factor.git/blob - basis/compiler/cfg/registers/registers.factor
2b9d3df6f674896fb4e42a3a7759fb1e5eb17f9e
[factor.git] / basis / compiler / cfg / registers / registers.factor
1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors namespaces kernel arrays parser ;
4 IN: compiler.cfg.registers
5
6 ! Virtual registers, used by CFG and machine IRs
7 TUPLE: vreg { reg-class read-only } { n read-only } ;
8 SYMBOL: vreg-counter
9 : next-vreg ( reg-class -- vreg ) \ vreg-counter counter vreg boa ;
10
11 ! Stack locations
12 TUPLE: loc { n read-only } ;
13
14 TUPLE: ds-loc < loc ;
15 C: <ds-loc> ds-loc
16
17 TUPLE: rs-loc < loc ;
18 C: <rs-loc> rs-loc
19
20 : V scan-word scan-word vreg boa parsed ; parsing
21 : D scan-word <ds-loc> parsed ; parsing
22 : R scan-word <rs-loc> parsed ; parsing