From f7ca9bfa04d335e47daab91fa556b43a5369270e Mon Sep 17 00:00:00 2001 From: dos-reis Date: Mon, 24 Jan 2011 17:10:48 +0000 Subject: * algebra/array1.spad.pamphlet: Use %aref instead of %vref. * interp/g-opt.boot (optSETRECORDELT): Tidy code generation. (optRECORDCOPY): Likewise. (optRECORDELT): Likewise. ($VMsideEffectFreeOperators): Include %aref. Translate. --- src/interp/g-opt.boot | 16 ++++++++-------- src/interp/g-util.boot | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'src/interp') diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot index 827a750a..1de0de78 100644 --- a/src/interp/g-opt.boot +++ b/src/interp/g-opt.boot @@ -407,21 +407,21 @@ optRECORDELT ["RECORDELT",name,ind,len] == ind=0 => ['%head,name] ind=1 => ['%tail,name] keyedSystemError("S2OO0002",[ind]) - ["QVELT",name,ind] + ['%vref,name,ind] optSETRECORDELT ["SETRECORDELT",name,ind,len,expr] == len=1 => - ind=0 => ["PROGN",["RPLACA",name,expr],['%head,name]] + ind = 0 => ['SEQ,['%store,['%head,name],expr],['EXIT,['%head,name]]] keyedSystemError("S2OO0002",[ind]) len=2 => - ind=0 => ["PROGN",['%store,['%head,name],expr],['%head,name]] - ind=1 => ["PROGN",['%store,['%tail,name],expr],['%tail,name]] + ind = 0 => ['SEQ,['%store,['%head,name],expr],['EXIT,['%head,name]]] + ind = 1 => ['SEQ,['%store,['%tail,name],expr],['EXIT,['%tail,name]]] keyedSystemError("S2OO0002",[ind]) - ["QSETVELT",name,ind,expr] + ['%store,['%vref,name,ind],expr] optRECORDCOPY ["RECORDCOPY",name,len] == - len=1 => ["LIST",['%head,name]] - len=2 => ["CONS",['%head,name],['%tail,name]] + len = 1 => ["LIST",['%head,name]] + len = 2 => ['%makepair,['%head,name],['%tail,name]] ["REPLACE",["MAKE_-VEC",len],name] optSuchthat [.,:u] == ["SUCHTHAT",:u] @@ -453,7 +453,7 @@ $VMsideEffectFreeOperators == %lreverse %lempty? %hash %ismall? %string? %f2s %ccst %ceq %clt %cle %cgt %cge %c2i %i2c %s2c %cup %cdown %sname %strlength %streq %i2s %schar %strlt %strconc %strcopy %strstc - %vref %vlength + %aref %vref %vlength %bitvecnot %bitvecand %bitvecnand %bivecor %bitvecnor %bitvecxor %bitveccopy %bitvecconc %bitveclength %bitvecref %bitveceq %before?) diff --git a/src/interp/g-util.boot b/src/interp/g-util.boot index 197da15a..e0fc1d07 100644 --- a/src/interp/g-util.boot +++ b/src/interp/g-util.boot @@ -566,7 +566,8 @@ for x in [ -- simple vector operations ['%vfill, :'FILL], ['%vlength, :'sizeOfSimpleArray], - ['%vref, :'getSimpleArrayEntry], + ['%vref, :'SVREF], + ['%aref, :'getSimpleArrayEntry], -- symbol unary functions ['%gensym, :'GENSYM], -- cgit v1.2.3