Mercurial > hg > graal-compiler
changeset 8247:5b08b0f4d338
Updated some Truffle-SL classes to new naming convention.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Wed, 06 Mar 2013 18:33:52 +0100 |
parents | 3862508afe2f |
children | c4c3f50fa9c2 |
files | graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ArithmeticNode.java graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/WriteLocalNode.java |
diffstat | 2 files changed, 34 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ArithmeticNode.java Wed Mar 06 18:33:05 2013 +0100 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ArithmeticNode.java Wed Mar 06 18:33:52 2013 +0100 @@ -37,11 +37,6 @@ super(node); } - @Generic - public Object doGeneric(Object left, Object right) { - throw new RuntimeException("Arithmetic not defined for types " + left.getClass().getSimpleName() + ", " + right.getClass().getSimpleName()); - } - public abstract static class AddNode extends ArithmeticNode { public AddNode(TypedNode left, TypedNode right) { @@ -53,7 +48,7 @@ } @Specialization(rewriteOn = ArithmeticException.class) - int doInteger(int left, int right) { + int doInt(int left, int right) { return ExactMath.addExact(left, right); } @@ -63,14 +58,19 @@ } @Specialization - String doStringDirect(String left, String right) { + String doString(String left, String right) { return left + right; } @Specialization(guards = "isString") - String doString(Object left, Object right) { + String add(Object left, Object right) { return left.toString() + right.toString(); } + + @Generic + public Object addGeneric(Object left, Object right) { + throw new RuntimeException("Arithmetic not defined for types " + left.getClass().getSimpleName() + ", " + right.getClass().getSimpleName()); + } } public abstract static class SubNode extends ArithmeticNode { @@ -84,14 +84,19 @@ } @Specialization(rewriteOn = ArithmeticException.class) - int doInteger(int left, int right) { + int sub(int left, int right) { return ExactMath.subtractExact(left, right); } @Specialization - BigInteger doBigInteger(BigInteger left, BigInteger right) { + BigInteger sub(BigInteger left, BigInteger right) { return left.subtract(right); } + + @Generic + public Object sub(Object left, Object right) { + throw new RuntimeException("Arithmetic not defined for types " + left.getClass().getSimpleName() + ", " + right.getClass().getSimpleName()); + } } public abstract static class DivNode extends ArithmeticNode { @@ -105,14 +110,19 @@ } @Specialization(rewriteOn = ArithmeticException.class) - int doInteger(int left, int right) { + int div(int left, int right) { return left / right; } @Specialization - BigInteger doBigInteger(BigInteger left, BigInteger right) { + BigInteger div(BigInteger left, BigInteger right) { return left.divide(right); } + + @Generic + public Object div(Object left, Object right) { + throw new RuntimeException("Arithmetic not defined for types " + left.getClass().getSimpleName() + ", " + right.getClass().getSimpleName()); + } } public abstract static class MulNode extends ArithmeticNode { @@ -126,14 +136,19 @@ } @Specialization(rewriteOn = ArithmeticException.class) - int doInteger(int left, int right) { + int mul(int left, int right) { return ExactMath.multiplyExact(left, right); } @Specialization - BigInteger doBigInteger(BigInteger left, BigInteger right) { + BigInteger mul(BigInteger left, BigInteger right) { return left.multiply(right); } + + @Generic + public Object mul(Object left, Object right) { + throw new RuntimeException("Arithmetic not defined for types " + left.getClass().getSimpleName() + ", " + right.getClass().getSimpleName()); + } } }
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/WriteLocalNode.java Wed Mar 06 18:33:05 2013 +0100 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/WriteLocalNode.java Wed Mar 06 18:33:52 2013 +0100 @@ -41,31 +41,31 @@ } @Specialization - public int doInteger(VirtualFrame frame, int right) { + public int write(VirtualFrame frame, int right) { frame.setInt(slot, right); return right; } @Specialization - public BigInteger doBigInteger(VirtualFrame frame, BigInteger right) { + public BigInteger write(VirtualFrame frame, BigInteger right) { frame.setObject(slot, right); return right; } @Specialization - public boolean doBoolean(VirtualFrame frame, boolean right) { + public boolean write(VirtualFrame frame, boolean right) { frame.setBoolean(slot, right); return right; } @Specialization - public String doString(VirtualFrame frame, String right) { + public String write(VirtualFrame frame, String right) { frame.setObject(slot, right); return right; } @Generic - public Object doGeneric(VirtualFrame frame, Object right) { + public Object write(VirtualFrame frame, Object right) { frame.setObject(slot, right); return right; }