Chromium Code Reviews| 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,7 +736,14 @@ |
| void SmiUntag(Register reg) { |
| mov(reg, Operand(reg, ASR, kSmiTagSize)); |
| } |
| + void SmiUntag(Register dst, Register src) { |
| + mov(dst, Operand(src, ASR, kSmiTagSize)); |
| + } |
| + // Jump if register contain a smi. |
| + void JumpIfSmi(Register reg, Label* on_smi); |
|
Mads Ager (chromium)
2011/01/25 14:25:09
Don't we have BranchOnSmi? Either use that one or
Søren Thygesen Gjesse
2011/01/25 14:49:41
You are right - changed to use BranchOnSmi. There
|
| + // Jump if register contain a non-smi. |
| + void JumpIfNotSmi(Register reg, Label* on_not_smi); |
| // Jump if either of the registers contain a non-smi. |
| void JumpIfNotBothSmi(Register reg1, Register reg2, Label* on_not_both_smi); |
| // Jump if either of the registers contain a smi. |
| @@ -744,6 +754,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 |