comparison graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/OrNode.java @ 14707:6ce6c4ccba8f

initial support for memory arithmetic on x86
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Thu, 20 Mar 2014 15:57:03 -0700
parents 34c07ef28bc9
children fbae9be45c95
comparison
equal deleted inserted replaced
14706:579a2a124c95 14707:6ce6c4ccba8f
24 24
25 import com.oracle.graal.api.meta.*; 25 import com.oracle.graal.api.meta.*;
26 import com.oracle.graal.graph.*; 26 import com.oracle.graal.graph.*;
27 import com.oracle.graal.graph.spi.*; 27 import com.oracle.graal.graph.spi.*;
28 import com.oracle.graal.nodes.*; 28 import com.oracle.graal.nodes.*;
29 import com.oracle.graal.nodes.extended.*;
29 import com.oracle.graal.nodes.spi.*; 30 import com.oracle.graal.nodes.spi.*;
30 import com.oracle.graal.nodes.type.*; 31 import com.oracle.graal.nodes.type.*;
31 32
32 @NodeInfo(shortName = "|") 33 @NodeInfo(shortName = "|")
33 public final class OrNode extends BitLogicNode implements Canonicalizable { 34 public final class OrNode extends BitLogicNode implements Canonicalizable {
73 74
74 @Override 75 @Override
75 public void generate(ArithmeticLIRGenerator gen) { 76 public void generate(ArithmeticLIRGenerator gen) {
76 gen.setResult(this, gen.emitOr(gen.operand(x()), gen.operand(y()))); 77 gen.setResult(this, gen.emitOr(gen.operand(x()), gen.operand(y())));
77 } 78 }
79
80 @Override
81 public boolean generate(MemoryArithmeticLIRLowerer gen, Access access) {
82 Value result = gen.emitOrMemory(x(), y(), access);
83 if (result != null) {
84 gen.setResult(this, result);
85 }
86 return result != null;
87 }
78 } 88 }