Index: src/arm/macro-assembler-arm.h |
=================================================================== |
--- src/arm/macro-assembler-arm.h (revision 6451) |
+++ src/arm/macro-assembler-arm.h (working copy) |
@@ -719,6 +719,9 @@ |
void SmiTag(Register reg, SBit s = LeaveCC) { |
add(reg, reg, Operand(reg), s); |
} |
+ void SmiTag(Register dst, Register src, SBit s = LeaveCC) { |
+ add(dst, src, Operand(src), s); |
+ } |
// Try to convert int32 to smi. If the value is to large, preserve |
// the original value and jump to not_a_smi. Destroys scratch and |
@@ -733,6 +736,9 @@ |
void SmiUntag(Register reg) { |
mov(reg, Operand(reg, ASR, kSmiTagSize)); |
} |
+ void SmiUntag(Register dst, Register src) { |
+ mov(dst, Operand(src, ASR, kSmiTagSize)); |
+ } |
// Jump if either of the registers contain a non-smi. |
void JumpIfNotBothSmi(Register reg1, Register reg2, Label* on_not_both_smi); |
@@ -744,6 +750,14 @@ |
void AbortIfNotSmi(Register object); |
// --------------------------------------------------------------------------- |
+ // HeapNumber utilities |
+ |
+ void JumpIfNotHeapNumber(Register object, |
+ Register heap_number_map, |
+ Register scratch, |
+ Label* on_not_heap_number); |
+ |
+ // --------------------------------------------------------------------------- |
// String utilities |
// Checks if both objects are sequential ASCII strings and jumps to label |