Index: src/x64/macro-assembler-x64.h |
diff --git a/src/x64/macro-assembler-x64.h b/src/x64/macro-assembler-x64.h |
index ce2848c059b887b03b2e33feff270c14d76516cf..8d4a8f2e2aae443c7664caef92047dd5901dd38a 100644 |
--- a/src/x64/macro-assembler-x64.h |
+++ b/src/x64/macro-assembler-x64.h |
@@ -207,6 +207,9 @@ class MacroAssembler: public Assembler { |
// Are both values tagged smis. |
Condition CheckBothSmi(Register first, Register second); |
+ // Are both values tagged smis. |
+ Condition CheckBothPositiveSmi(Register first, Register second); |
+ |
// Are either value a tagged smi. |
Condition CheckEitherSmi(Register first, Register second); |
@@ -248,6 +251,10 @@ class MacroAssembler: public Assembler { |
// Jump if either or both register are not smi values. |
void JumpIfNotBothSmi(Register src1, Register src2, Label* on_not_both_smi); |
+ // Jump if either or both register are not positive smi values. |
+ void JumpIfNotBothPositiveSmi(Register src1, Register src2, |
+ Label* on_not_both_smi); |
+ |
// Operations on tagged smi values. |
// Smis represent a subset of integers. The subset is always equivalent to |
@@ -452,6 +459,15 @@ class MacroAssembler: public Assembler { |
// Always use unsigned comparisons: above and below, not less and greater. |
void CmpInstanceType(Register map, InstanceType type); |
+ // Check if the object in register heap_object is a string. Afterwards the |
+ // register map contains the object map and the register instance_type |
+ // contains the instance_type. The registers map and instance_type can be the |
+ // same in which case it contains the instance type afterwards. Either of the |
+ // registers map and instance_type can be the same as heap_object. |
+ Condition IsObjectStringType(Register heap_object, |
+ Register map, |
+ Register instance_type); |
+ |
// FCmp is similar to integer cmp, but requires unsigned |
// jcc instructions (je, ja, jae, jb, jbe, je, and jz). |
void FCmp(); |