Chromium Code Reviews| 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. |