diff --git a/basis/compiler/cfg/linear-scan/allocation/state/state.factor b/basis/compiler/cfg/linear-scan/allocation/state/state.factor index 8bdd6231b5..f9e6fc6a36 100644 --- a/basis/compiler/cfg/linear-scan/allocation/state/state.factor +++ b/basis/compiler/cfg/linear-scan/allocation/state/state.factor @@ -118,7 +118,7 @@ SYMBOL: unhandled-intervals [ reg-classes ] dip { } map>assoc ; inline : next-spill-slot ( rep -- n ) - rep-size cfg get + cfg get [ swap [ align dup ] [ + ] bi ] change-spill-area-size drop ; @@ -129,12 +129,10 @@ SYMBOL: unhandled-sync-points SYMBOL: spill-slots : assign-spill-slot ( coalesced-vreg rep -- spill-slot ) - dup tagged-rep? [ drop int-rep ] when - spill-slots get [ nip next-spill-slot ] 2cache ; + rep-size spill-slots get [ nip next-spill-slot ] 2cache ; : lookup-spill-slot ( coalesced-vreg rep -- spill-slot ) - dup tagged-rep? [ drop int-rep ] when - 2array spill-slots get ?at [ ] [ bad-vreg ] if ; + rep-size 2array spill-slots get ?at [ ] [ bad-vreg ] if ; : init-allocator ( registers -- ) registers set diff --git a/basis/compiler/cfg/linear-scan/resolve/resolve.factor b/basis/compiler/cfg/linear-scan/resolve/resolve.factor index 9964389ce6..9d3c91ca18 100644 --- a/basis/compiler/cfg/linear-scan/resolve/resolve.factor +++ b/basis/compiler/cfg/linear-scan/resolve/resolve.factor @@ -36,7 +36,7 @@ M: location hashcode* SYMBOL: spill-temps : spill-temp ( rep -- n ) - spill-temps get [ next-spill-slot ] cache ; + rep-size spill-temps get [ next-spill-slot ] cache ; : add-mapping ( from to rep -- ) '[ _ ] bi@ 2array , ;