Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: src/a64/lithium-a64.h

Issue 131363008: A64: Synchronize with r15922. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/a64/ic-a64.cc ('k') | src/a64/lithium-a64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/a64/lithium-a64.h
diff --git a/src/a64/lithium-a64.h b/src/a64/lithium-a64.h
index a8846f48b7dfaac5c9b64ccf276e06f687b6ffbf..08bfe9e21eaf93c41e806df7434bd01329d65f30 100644
--- a/src/a64/lithium-a64.h
+++ b/src/a64/lithium-a64.h
@@ -40,15 +40,10 @@ namespace internal {
// Forward declarations.
class LCodeGen;
-#define LITHIUM_ALL_INSTRUCTION_LIST(V) \
- V(ControlInstruction) \
- V(Call) \
- LITHIUM_CONCRETE_INSTRUCTION_LIST(V)
-
-
#define LITHIUM_CONCRETE_INSTRUCTION_LIST(V) \
V(AccessArgumentsAt) \
V(AddI) \
+ V(AddS) \
V(Allocate) \
V(ApplyArguments) \
V(ArgumentsElements) \
@@ -56,6 +51,7 @@ class LCodeGen;
V(ArithmeticD) \
V(ArithmeticT) \
V(BitI) \
+ V(BitS) \
V(BitNotI) \
V(BoundsCheck) \
V(Branch) \
@@ -71,18 +67,19 @@ class LCodeGen;
V(CallStub) \
V(CheckFunction) \
V(CheckInstanceType) \
- V(CheckNonSmi) \
V(CheckMaps) \
+ V(CheckMapValue) \
+ V(CheckNonSmi) \
V(CheckPrototypeMaps) \
V(CheckSmi) \
V(ClampDToUint8) \
V(ClampIToUint8) \
V(ClampTToUint8) \
V(ClassOfTestAndBranch) \
- V(CompareNumericAndBranch) \
V(CmpMapAndBranch) \
V(CmpObjectEqAndBranch) \
V(CmpT) \
+ V(CompareNumericAndBranch) \
V(ConstantD) \
V(ConstantI) \
V(ConstantS) \
@@ -117,14 +114,15 @@ class LCodeGen;
V(IsConstructCallAndBranch) \
V(IsNumberAndBranch) \
V(IsObjectAndBranch) \
- V(IsStringAndBranch) \
V(IsSmiAndBranch) \
+ V(IsStringAndBranch) \
V(IsUndetectableAndBranch) \
V(Label) \
V(LazyBailout) \
V(LinkObjectInList) \
V(LoadContextSlot) \
V(LoadExternalArrayPointer) \
+ V(LoadFieldByIndex) \
V(LoadFunctionPrototype) \
V(LoadGlobalCell) \
V(LoadGlobalGeneric) \
@@ -137,8 +135,8 @@ class LCodeGen;
V(LoadNamedGeneric) \
V(MapEnumLength) \
V(MathAbs) \
- V(MathCos) \
V(MathAbsTagged) \
+ V(MathCos) \
V(MathExp) \
V(MathFloor) \
V(MathFloorOfDiv) \
@@ -152,6 +150,7 @@ class LCodeGen;
V(ModI) \
V(MulConstI) \
V(MulI) \
+ V(MulS) \
V(NumberTagD) \
V(NumberTagU) \
V(NumberUntagD) \
@@ -195,8 +194,6 @@ class LCodeGen;
V(Uint32ToDouble) \
V(UnknownOSRValue) \
V(ValueOf) \
- V(CheckMapValue) \
- V(LoadFieldByIndex) \
V(WrapReceiver)
@@ -584,6 +581,21 @@ class LAddI: public LTemplateInstruction<1, 2, 0> {
};
+class LAddS: public LTemplateInstruction<1, 2, 0> {
+ public:
+ LAddS(LOperand* left, LOperand* right) {
+ inputs_[0] = left;
+ inputs_[1] = right;
+ }
+
+ LOperand* left() { return inputs_[0]; }
+ LOperand* right() { return inputs_[1]; }
+
+ DECLARE_CONCRETE_INSTRUCTION(AddS, "add-s")
+ DECLARE_HYDROGEN_ACCESSOR(Add)
+};
+
+
class LAllocate: public LTemplateInstruction<1, 1, 2> {
public:
// TODO(jbramley): On ia32, this takes a context, and it is used by the
@@ -724,6 +736,23 @@ class LBitI: public LTemplateInstruction<1, 2, 0> {
};
+class LBitS: public LTemplateInstruction<1, 2, 0> {
+ public:
+ LBitS(LOperand* left, LOperand* right) {
+ inputs_[0] = left;
+ inputs_[1] = right;
+ }
+
+ LOperand* left() { return inputs_[0]; }
+ LOperand* right() { return inputs_[1]; }
+
+ Token::Value op() const { return hydrogen()->op(); }
+
+ DECLARE_CONCRETE_INSTRUCTION(BitS, "bit-s")
+ DECLARE_HYDROGEN_ACCESSOR(Bitwise)
+};
+
+
class LBitNotI: public LTemplateInstruction<1, 1, 0> {
public:
explicit LBitNotI(LOperand* value) {
@@ -921,7 +950,7 @@ class LCheckInstanceType: public LTemplateInstruction<0, 1, 1> {
class LCheckMaps: public LTemplateInstruction<0, 1, 1> {
public:
- explicit LCheckMaps(LOperand* value, LOperand* temp) {
+ explicit LCheckMaps(LOperand* value, LOperand* temp = NULL) {
inputs_[0] = value;
temps_[0] = temp;
}
@@ -949,7 +978,7 @@ class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> {
class LCheckPrototypeMaps: public LTemplateInstruction<0, 0, 2> {
public:
- explicit LCheckPrototypeMaps(LOperand* temp1, LOperand* temp2) {
+ LCheckPrototypeMaps(LOperand* temp1 = NULL, LOperand* temp2 = NULL) {
temps_[0] = temp1;
temps_[1] = temp2;
}
@@ -1188,6 +1217,7 @@ class LDeclareGlobals: public LTemplateInstruction<0, 0, 0> {
class LDeoptimize: public LTemplateInstruction<0, 0, 0> {
public:
DECLARE_CONCRETE_INSTRUCTION(Deoptimize, "deoptimize")
+ DECLARE_HYDROGEN_ACCESSOR(Deoptimize)
};
@@ -1971,6 +2001,21 @@ class LMulI: public LTemplateInstruction<1, 2, 0> {
};
+class LMulS: public LTemplateInstruction<1, 2, 0> {
+ public:
+ LMulS(LOperand* left, LOperand* right) {
+ inputs_[0] = left;
+ inputs_[1] = right;
+ }
+
+ LOperand* left() { return inputs_[0]; }
+ LOperand* right() { return inputs_[1]; }
+
+ DECLARE_CONCRETE_INSTRUCTION(MulI, "mul-s")
+ DECLARE_HYDROGEN_ACCESSOR(Mul)
+};
+
+
class LNumberTagD: public LTemplateInstruction<1, 1, 2> {
public:
LNumberTagD(LOperand* value, LOperand* temp1, LOperand* temp2) {
@@ -2547,7 +2592,7 @@ class LTransitionElementsKind: public LTemplateInstruction<0, 1, 2> {
public:
LTransitionElementsKind(LOperand* object,
LOperand* temp1,
- LOperand* temp2) {
+ LOperand* temp2 = NULL) {
inputs_[0] = object;
temps_[0] = temp1;
temps_[1] = temp2;
« no previous file with comments | « src/a64/ic-a64.cc ('k') | src/a64/lithium-a64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698