aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-opt.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-06-10 07:53:08 +0000
committerdos-reis <gdr@axiomatics.org>2010-06-10 07:53:08 +0000
commitb28cdd9c3c0bbeba4f624cbfc649dc4e47b699a8 (patch)
treed255e5eab546d1485d92eab20800de47d825b259 /src/interp/g-opt.boot
parentf85354f7024aeb0803ddf39af67024eb6407e8fa (diff)
downloadopen-axiom-b28cdd9c3c0bbeba4f624cbfc649dc4e47b699a8.tar.gz
* interp/g-opt.boot (optCollectVector): Generate %loop for the
non-simple case.
Diffstat (limited to 'src/interp/g-opt.boot')
-rw-r--r--src/interp/g-opt.boot5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot
index 84fd563e..7c9ad4bd 100644
--- a/src/interp/g-opt.boot
+++ b/src/interp/g-opt.boot
@@ -600,11 +600,10 @@ optCollectVector form ==
-- if no suitable loop index was found, introduce one.
if index = nil then
index := gensym()
- iters := [:iters,["ISTEP",index,0,1]]
+ iters := [:iters,['STEP,index,0,1]]
vec := gensym()
["LET",[[vec,["makeSimpleArray",["getVMType",eltType],vecSize]]],
- ["REPEAT",:iters,["setSimpleArrayEntry",vec,index,body]],
- vec]
+ ['%loop,:iters,["setSimpleArrayEntry",vec,index,body],vec]]
++ Translate retraction of a value denoted by `e' to sub-domain `m'
++ defined by predicate `pred',