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

Unified Diff: src/compiler/opcodes.h

Issue 2202883005: [turbofan] Unify number operation typing rules. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Remove useless cementation. DCHECKs instead of defensive programming are way more useful. Created 4 years, 4 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 | « no previous file | src/compiler/operation-typer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/opcodes.h
diff --git a/src/compiler/opcodes.h b/src/compiler/opcodes.h
index 05f4b849a9bbe2e4f3adc1fd575c83e22eaa5ba3..8ba5d74ffa29a8ccbc9bf0897edb8bf041322144 100644
--- a/src/compiler/opcodes.h
+++ b/src/compiler/opcodes.h
@@ -200,24 +200,15 @@
V(NumberEqual) \
V(NumberLessThan) \
V(NumberLessThanOrEqual) \
+ V(SpeculativeNumberEqual) \
+ V(SpeculativeNumberLessThan) \
+ V(SpeculativeNumberLessThanOrEqual) \
V(ReferenceEqual) \
V(StringEqual) \
V(StringLessThan) \
V(StringLessThanOrEqual)
-#define SIMPLIFIED_OTHER_OP_LIST(V) \
- V(PlainPrimitiveToNumber) \
- V(PlainPrimitiveToWord32) \
- V(PlainPrimitiveToFloat64) \
- V(BooleanNot) \
- V(SpeculativeNumberAdd) \
- V(SpeculativeNumberSubtract) \
- V(SpeculativeNumberMultiply) \
- V(SpeculativeNumberDivide) \
- V(SpeculativeNumberModulus) \
- V(SpeculativeNumberEqual) \
- V(SpeculativeNumberLessThan) \
- V(SpeculativeNumberLessThanOrEqual) \
+#define SIMPLIFIED_NUMBER_BINOP_LIST(V) \
V(NumberAdd) \
V(NumberSubtract) \
V(NumberMultiply) \
@@ -229,80 +220,98 @@
V(NumberShiftLeft) \
V(NumberShiftRight) \
V(NumberShiftRightLogical) \
- V(SpeculativeNumberBitwiseAnd) \
- V(SpeculativeNumberBitwiseOr) \
- V(SpeculativeNumberBitwiseXor) \
- V(SpeculativeNumberShiftLeft) \
- V(SpeculativeNumberShiftRight) \
- V(SpeculativeNumberShiftRightLogical) \
- V(NumberImul) \
- V(NumberAbs) \
- V(NumberClz32) \
- V(NumberCeil) \
- V(NumberCos) \
- V(NumberCosh) \
- V(NumberFloor) \
- V(NumberFround) \
- V(NumberAcos) \
- V(NumberAcosh) \
- V(NumberAsin) \
- V(NumberAsinh) \
- V(NumberAtan) \
- V(NumberAtanh) \
V(NumberAtan2) \
- V(NumberExp) \
- V(NumberExpm1) \
- V(NumberLog) \
- V(NumberLog1p) \
- V(NumberLog2) \
- V(NumberLog10) \
+ V(NumberImul) \
V(NumberMax) \
V(NumberMin) \
- V(NumberCbrt) \
- V(NumberPow) \
- V(NumberRound) \
- V(NumberSign) \
- V(NumberSin) \
- V(NumberSinh) \
- V(NumberSqrt) \
- V(NumberTan) \
- V(NumberTanh) \
- V(NumberTrunc) \
- V(NumberToInt32) \
- V(NumberToUint32) \
- V(NumberSilenceNaN) \
- V(StringCharCodeAt) \
- V(StringFromCharCode) \
- V(CheckBounds) \
- V(CheckIf) \
- V(CheckMaps) \
- V(CheckNumber) \
- V(CheckString) \
- V(CheckTaggedPointer) \
- V(CheckTaggedSigned) \
- V(CheckFloat64Hole) \
- V(CheckTaggedHole) \
- V(Allocate) \
- V(LoadField) \
- V(LoadBuffer) \
- V(LoadElement) \
- V(LoadTypedElement) \
- V(StoreField) \
- V(StoreBuffer) \
- V(StoreElement) \
- V(StoreTypedElement) \
- V(ObjectIsCallable) \
- V(ObjectIsNumber) \
- V(ObjectIsReceiver) \
- V(ObjectIsSmi) \
- V(ObjectIsString) \
- V(ObjectIsUndetectable) \
+ V(NumberPow)
+
+#define SIMPLIFIED_SPECULATIVE_NUMBER_BINOP_LIST(V) \
+ V(SpeculativeNumberAdd) \
+ V(SpeculativeNumberSubtract) \
+ V(SpeculativeNumberMultiply) \
+ V(SpeculativeNumberDivide) \
+ V(SpeculativeNumberModulus) \
+ V(SpeculativeNumberBitwiseAnd) \
+ V(SpeculativeNumberBitwiseOr) \
+ V(SpeculativeNumberBitwiseXor) \
+ V(SpeculativeNumberShiftLeft) \
+ V(SpeculativeNumberShiftRight) \
+ V(SpeculativeNumberShiftRightLogical)
+
+#define SIMPLIFIED_NUMBER_UNOP_LIST(V) \
+ V(NumberAbs) \
+ V(NumberAcos) \
+ V(NumberAcosh) \
+ V(NumberAsin) \
+ V(NumberAsinh) \
+ V(NumberAtan) \
+ V(NumberAtanh) \
+ V(NumberCbrt) \
+ V(NumberCeil) \
+ V(NumberClz32) \
+ V(NumberCos) \
+ V(NumberCosh) \
+ V(NumberExp) \
+ V(NumberExpm1) \
+ V(NumberFloor) \
+ V(NumberFround) \
+ V(NumberLog) \
+ V(NumberLog1p) \
+ V(NumberLog2) \
+ V(NumberLog10) \
+ V(NumberRound) \
+ V(NumberSign) \
+ V(NumberSin) \
+ V(NumberSinh) \
+ V(NumberSqrt) \
+ V(NumberTan) \
+ V(NumberTanh) \
+ V(NumberTrunc) \
+ V(NumberToInt32) \
+ V(NumberToUint32) \
+ V(NumberSilenceNaN)
+
+#define SIMPLIFIED_OTHER_OP_LIST(V) \
+ V(PlainPrimitiveToNumber) \
+ V(PlainPrimitiveToWord32) \
+ V(PlainPrimitiveToFloat64) \
+ V(BooleanNot) \
+ V(StringCharCodeAt) \
+ V(StringFromCharCode) \
+ V(CheckBounds) \
+ V(CheckIf) \
+ V(CheckMaps) \
+ V(CheckNumber) \
+ V(CheckString) \
+ V(CheckTaggedPointer) \
+ V(CheckTaggedSigned) \
+ V(CheckFloat64Hole) \
+ V(CheckTaggedHole) \
+ V(Allocate) \
+ V(LoadField) \
+ V(LoadBuffer) \
+ V(LoadElement) \
+ V(LoadTypedElement) \
+ V(StoreField) \
+ V(StoreBuffer) \
+ V(StoreElement) \
+ V(StoreTypedElement) \
+ V(ObjectIsCallable) \
+ V(ObjectIsNumber) \
+ V(ObjectIsReceiver) \
+ V(ObjectIsSmi) \
+ V(ObjectIsString) \
+ V(ObjectIsUndetectable) \
V(TransitionElementsKind)
-#define SIMPLIFIED_OP_LIST(V) \
- SIMPLIFIED_CHANGE_OP_LIST(V) \
- SIMPLIFIED_CHECKED_OP_LIST(V) \
- SIMPLIFIED_COMPARE_BINOP_LIST(V) \
+#define SIMPLIFIED_OP_LIST(V) \
+ SIMPLIFIED_CHANGE_OP_LIST(V) \
+ SIMPLIFIED_CHECKED_OP_LIST(V) \
+ SIMPLIFIED_COMPARE_BINOP_LIST(V) \
+ SIMPLIFIED_NUMBER_BINOP_LIST(V) \
+ SIMPLIFIED_SPECULATIVE_NUMBER_BINOP_LIST(V) \
+ SIMPLIFIED_NUMBER_UNOP_LIST(V) \
SIMPLIFIED_OTHER_OP_LIST(V)
// Opcodes for Machine-level operators.
« no previous file with comments | « no previous file | src/compiler/operation-typer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698