Index: src/x64/macro-assembler-x64.h |
diff --git a/src/x64/macro-assembler-x64.h b/src/x64/macro-assembler-x64.h |
index 8c73dd92b332f8d69088d40da2c1e800267ab5f2..faa3e4d4fa01e650204fa67fde1e1076361f2ca0 100644 |
--- a/src/x64/macro-assembler-x64.h |
+++ b/src/x64/macro-assembler-x64.h |
@@ -53,6 +53,13 @@ typedef Operand MemOperand; |
enum RememberedSetAction { EMIT_REMEMBERED_SET, OMIT_REMEMBERED_SET }; |
enum SmiCheck { INLINE_SMI_CHECK, OMIT_SMI_CHECK }; |
+enum SmiExecutionMode { |
Sven Panne
2013/10/10 10:46:45
Don't use an enum here, which fundamentally wrong,
|
+ SMI_NO_CONSTRAINT = 0, // 0000000 |
+ SMI_NEED_RESERVE_SOURCES = 0x1, // 0000001 |
+ SMI_BAILOUT_ON_NO_OVERFLOW = 0x2, // 0000010 |
+ SMI_BAILOUT_ON_OVERFLOW = 0x4 // 0000100 |
+}; |
+ |
bool AreAliased(Register r1, Register r2, Register r3, Register r4); |
// Forward declaration. |
@@ -558,7 +565,8 @@ class MacroAssembler: public Assembler { |
void SmiSubConstant(Register dst, |
Register src, |
Smi* constant, |
- Label* on_not_smi_result, |
+ SmiExecutionMode mode, |
+ Label* bailout_label, |
Label::Distance near_jump = Label::kFar); |
// Negating a smi can give a negative zero or too large positive value. |