summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2020-10-01 06:33:42 -0700
committerKaz Kylheku <kaz@kylheku.com>2020-10-01 06:33:42 -0700
commitcdc47f43fc5695b2a1a98f5387e73dd4c10c956b (patch)
tree61d3d4b65cea29eabccb59912968ae809bb16a39 /share
parent161491beb0440bd63d9c956d1e0a6ef4a4c0c675 (diff)
downloadtxr-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.tl4
-rw-r--r--share/txr/stdlib/vm-param.tl1
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)