- virtual ConstPoolVal *add(const ConstPoolVal *V1,
- const ConstPoolVal *V2) const = 0;
- virtual ConstPoolVal *sub(const ConstPoolVal *V1,
- const ConstPoolVal *V2) const = 0;
- virtual ConstPoolVal *mul(const ConstPoolVal *V1,
- const ConstPoolVal *V2) const = 0;
-
- virtual ConstPoolBool *lessthan(const ConstPoolVal *V1,
- const ConstPoolVal *V2) const = 0;
+ virtual Constant *add(const Constant *V1, const Constant *V2) const = 0;
+ virtual Constant *sub(const Constant *V1, const Constant *V2) const = 0;
+ virtual Constant *mul(const Constant *V1, const Constant *V2) const = 0;
+ virtual Constant *div(const Constant *V1, const Constant *V2) const = 0;
+ virtual Constant *rem(const Constant *V1, const Constant *V2) const = 0;
+ virtual Constant *op_and(const Constant *V1, const Constant *V2) const = 0;
+ virtual Constant *op_or (const Constant *V1, const Constant *V2) const = 0;
+ virtual Constant *op_xor(const Constant *V1, const Constant *V2) const = 0;
+ virtual Constant *shl(const Constant *V1, const Constant *V2) const = 0;
+ virtual Constant *shr(const Constant *V1, const Constant *V2) const = 0;
+
+ virtual ConstantBool *lessthan(const Constant *V1,
+ const Constant *V2) const = 0;