diff options
Diffstat (limited to 'src/interp/g-opt.boot')
-rw-r--r-- | src/interp/g-opt.boot | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot index 05860159..983cd634 100644 --- a/src/interp/g-opt.boot +++ b/src/interp/g-opt.boot @@ -305,6 +305,10 @@ optCall (x is ['%call,:u]) == x.first := 'SPADCALL x.rest := [:a,name] x + fn is ['%pair,['%function,op],env] => + x.first := op + x.rest := [:a,env] + x fn is [q,R,n] and q in '(ELT CONST) => q is 'CONST => ['spadConstant,R,n] emitIndirectCall(fn,a,x) @@ -418,7 +422,7 @@ optSuchthat [.,:u] == ["SUCHTHAT",:u] ++ List of VM side effect free operators. $VMsideEffectFreeOperators == - '(SPADfirst ASH FLOAT FLOAT_-SIGN + '(SPADfirst ASH FLOAT FLOAT_-SIGN %function %funcall %nothing %when %false %true %otherwise %2bit %2bool %and %or %not %peq %ieq %ilt %ile %igt %ige %head %tail %integer? %beq %blt %ble %bgt %bge %bitand %bitior %bitxor %bitnot %bcompl |