From e359f3fca4cf6b997972f53a09adabb6bb36f79b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Lindqvist?= Date: Mon, 1 Aug 2016 21:34:58 +0200 Subject: [PATCH] compiler.cfg.builder.alien.params: refactors the next-reg-param and reg-class-full? words --- .../cfg/builder/alien/params/params.factor | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/basis/compiler/cfg/builder/alien/params/params.factor b/basis/compiler/cfg/builder/alien/params/params.factor index 7650430498..0713115d09 100644 --- a/basis/compiler/cfg/builder/alien/params/params.factor +++ b/basis/compiler/cfg/builder/alien/params/params.factor @@ -40,18 +40,12 @@ M: int-rep next-reg-param ] when ] 2tri int-regs get pop ; -M: float-rep next-reg-param +M: object next-reg-param nip [ ?dummy-stack-params ] [ ?dummy-int-params ] bi float-regs get pop ; -M: double-rep next-reg-param - nip [ ?dummy-stack-params ] [ ?dummy-int-params ] bi - float-regs get pop ; - -:: reg-class-full? ( reg-class odd-register? -- ? ) - reg-class get empty? - reg-class get length 1 = odd-register? and - dup [ reg-class get delete-all ] when or ; +: reg-class-full? ( reg-class odd-register? -- ? ) + over length 1 = and [ dup delete-all ] when empty? ; : init-reg-class ( abi reg-class -- ) [ swap param-regs at >vector ] keep set ; @@ -63,7 +57,7 @@ SYMBOLS: stack-values reg-values ; :: next-parameter ( vreg rep on-stack? odd-register? -- ) vreg rep on-stack? - [ dup dup reg-class-of odd-register? reg-class-full? ] dip or + [ dup dup reg-class-of get odd-register? reg-class-full? ] dip or [ alloc-stack-param stack-values ] [ odd-register? swap next-reg-param reg-values ] if [ 3array ] dip get push ;