Index: src/x64/macro-assembler-x64.h |
diff --git a/src/x64/macro-assembler-x64.h b/src/x64/macro-assembler-x64.h |
index 9d5d2a31c5ceee61652cd923ca83e8a13d1388ca..faf30f1b249d4f237870d358572388ab64c2815e 100644 |
--- a/src/x64/macro-assembler-x64.h |
+++ b/src/x64/macro-assembler-x64.h |
@@ -484,10 +484,17 @@ class MacroAssembler: public Assembler { |
// Jump if the value cannot be represented by a smi. |
void JumpIfNotValidSmiValue(Register src, Label* on_invalid, |
Label::Distance near_jump = Label::kFar); |
+ // Jump if the value can be represented by a smi. |
+ void JumpIfValidSmiValue(Register src, Label* on_valid, |
+ Label::Distance near_jump = Label::kFar); |
// Jump if the unsigned integer value cannot be represented by a smi. |
void JumpIfUIntNotValidSmiValue(Register src, Label* on_invalid, |
Label::Distance near_jump = Label::kFar); |
+ // Jump if the unsigned integer value can be represented by a smi. |
+ void JumpIfUIntValidSmiValue(Register src, Label* on_valid, |
+ Label::Distance near_jump = Label::kFar); |
+ |
// Jump to label if the value is a tagged smi. |
void JumpIfSmi(Register src, |
@@ -650,7 +657,8 @@ class MacroAssembler: public Assembler { |
void SmiShiftLeftConstant(Register dst, |
Register src, |
- int shift_value); |
+ int shift_value, |
+ Label* on_not_smi_result); |
void SmiShiftLogicalRightConstant(Register dst, |
Register src, |
int shift_value, |
@@ -664,7 +672,8 @@ class MacroAssembler: public Assembler { |
// Uses and clobbers rcx, so dst may not be rcx. |
void SmiShiftLeft(Register dst, |
Register src1, |
- Register src2); |
+ Register src2, |
+ Label* on_not_smi_result); |
// Shifts a smi value to the right, shifting in zero bits at the top, and |
// returns the unsigned intepretation of the result if that is a smi. |
// Uses and clobbers rcx, so dst may not be rcx. |