| 4077 | |
| 4078 | template<typename T, int REFMODE> |
| 4079 | CppiaExpr *MemReference<T,REFMODE>::makeSetter(AssignOp op,CppiaExpr *value) |
| 4080 | { |
| 4081 | switch(op) |
| 4082 | { |
| 4083 | case aoSet: |
| 4084 | return new MemReferenceSetter<T,REFMODE,AssignSet>(this,value,op); |
| 4085 | case aoAdd: |
| 4086 | return new MemReferenceSetter<T,REFMODE,AssignAdd>(this,value,op); |
| 4087 | case aoMult: |
| 4088 | return new MemReferenceSetter<T,REFMODE,AssignMult>(this,value,op); |
| 4089 | case aoDiv: |
| 4090 | return new MemReferenceSetter<T,REFMODE,AssignDiv>(this,value,op); |
| 4091 | case aoSub: |
| 4092 | return new MemReferenceSetter<T,REFMODE,AssignSub>(this,value,op); |
| 4093 | case aoAnd: |
| 4094 | return new MemReferenceSetter<T,REFMODE,AssignAnd>(this,value,op); |
| 4095 | case aoOr: |
| 4096 | return new MemReferenceSetter<T,REFMODE,AssignOr>(this,value,op); |
| 4097 | case aoXOr: |
| 4098 | return new MemReferenceSetter<T,REFMODE,AssignXOr>(this,value,op); |
| 4099 | case aoShl: |
| 4100 | return new MemReferenceSetter<T,REFMODE,AssignShl>(this,value,op); |
| 4101 | case aoShr: |
| 4102 | return new MemReferenceSetter<T,REFMODE,AssignShr>(this,value,op); |
| 4103 | case aoUShr: |
| 4104 | return new MemReferenceSetter<T,REFMODE,AssignUShr>(this,value,op); |
| 4105 | case aoMod: |
| 4106 | return new MemReferenceSetter<T,REFMODE,AssignMod>(this,value,op); |
| 4107 | default: ; |
| 4108 | } |
| 4109 | throw "Bad assign op"; |
| 4110 | return 0; |
| 4111 | } |
| 4112 | |
| 4113 | #ifdef CPPIA_JIT |
| 4114 | static double sOne = 1.0; |