diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-10-01 06:33:42 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-10-01 06:33:42 -0700 |
commit | cdc47f43fc5695b2a1a98f5387e73dd4c10c956b (patch) | |
tree | 61d3d4b65cea29eabccb59912968ae809bb16a39 /share | |
parent | 161491beb0440bd63d9c956d1e0a6ef4a4c0c675 (diff) | |
download | txr-cdc47f43fc5695b2a1a98f5387e73dd4c10c956b.tar.gz txr-cdc47f43fc5695b2a1a98f5387e73dd4c10c956b.tar.bz2 txr-cdc47f43fc5695b2a1a98f5387e73dd4c10c956b.zip |
compiler: don't use move immediate instructions.
* share/txr/stdlib/compiler.tl (comp-atom): Remove the special
case for small fixnums and characters which encodes their
value in a movi instruction as an immediate operand. This
means that now these operands go into D registers, like all
other literals.
* share/txr/stdlib/vm-param.tl (%imm-width%): Remove this
constant, reprensenting the maximum bit width of an immediate
operand.
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/compiler.tl | 4 | ||||
-rw-r--r-- | share/txr/stdlib/vm-param.tl | 1 |
2 files changed, 0 insertions, 5 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl index f245e9f5..d1ee6664 100644 --- a/share/txr/stdlib/compiler.tl +++ b/share/txr/stdlib/compiler.tl @@ -348,10 +348,6 @@ (defmeth compiler comp-atom (me oreg form) (cond ((null form) (new (frag '(t 0) nil))) - ((or (and (fixnump form) - (<= (width form) (- %imm-width% 3))) - (chrp form)) - (new (frag oreg ^((movi ,oreg ,form))))) (t (let ((dreg me.(get-dreg form))) (new (frag dreg nil)))))) diff --git a/share/txr/stdlib/vm-param.tl b/share/txr/stdlib/vm-param.tl index 1198831b..0e278291 100644 --- a/share/txr/stdlib/vm-param.tl +++ b/share/txr/stdlib/vm-param.tl @@ -29,7 +29,6 @@ (defsymacro %lev-bits% 10) (defsymacro %max-lev% 63) (defsymacro %max-v-lev% (macro-time (ppred %max-lev%))) -(defsymacro %imm-width% 32) (defsymacro %sm-lev-size% 64) (defsymacro %max-sm-lev-idx% (macro-time (pred %sm-lev-size%))) (defsymacro %max-sm-lev% 15) |