compiler.cfg.registers: minor optimization
parent
e7e5bee9a2
commit
ead57fc5dd
|
@ -1,11 +1,17 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! Copyright (C) 2008, 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors namespaces kernel arrays parser ;
|
||||
USING: accessors namespaces kernel arrays parser math math.order ;
|
||||
IN: compiler.cfg.registers
|
||||
|
||||
! Virtual registers, used by CFG and machine IRs
|
||||
TUPLE: vreg { reg-class read-only } { n read-only } ;
|
||||
TUPLE: vreg { reg-class read-only } { n fixnum read-only } ;
|
||||
|
||||
M: vreg equal? over vreg? [ [ n>> ] bi@ eq? ] [ 2drop f ] if ;
|
||||
|
||||
M: vreg hashcode* nip n>> ;
|
||||
|
||||
SYMBOL: vreg-counter
|
||||
|
||||
: next-vreg ( reg-class -- vreg ) \ vreg-counter counter vreg boa ;
|
||||
|
||||
! Stack locations -- 'n' is an index starting from the top of the stack
|
||||
|
|
Loading…
Reference in New Issue