diff options
Diffstat (limited to 'deps/v8/src/ia32/macro-assembler-ia32.h')
-rw-r--r-- | deps/v8/src/ia32/macro-assembler-ia32.h | 69 |
1 files changed, 28 insertions, 41 deletions
diff --git a/deps/v8/src/ia32/macro-assembler-ia32.h b/deps/v8/src/ia32/macro-assembler-ia32.h index 3b2051f231..81347e58f2 100644 --- a/deps/v8/src/ia32/macro-assembler-ia32.h +++ b/deps/v8/src/ia32/macro-assembler-ia32.h @@ -6,6 +6,7 @@ #define V8_IA32_MACRO_ASSEMBLER_IA32_H_ #include "src/assembler.h" +#include "src/bailout-reason.h" #include "src/frames.h" #include "src/globals.h" @@ -463,11 +464,9 @@ class MacroAssembler: public Assembler { void TruncateDoubleToI(Register result_reg, XMMRegister input_reg); void DoubleToI(Register result_reg, XMMRegister input_reg, - XMMRegister scratch, MinusZeroMode minus_zero_mode, - Label* conversion_failed, Label::Distance dst = Label::kFar); - - void TaggedToI(Register result_reg, Register input_reg, XMMRegister temp, - MinusZeroMode minus_zero_mode, Label* lost_precision); + XMMRegister scratch, MinusZeroMode minus_zero_mode, + Label* lost_precision, Label* is_nan, Label* minus_zero, + Label::Distance dst = Label::kFar); // Smi tagging support. void SmiTag(Register reg) { @@ -658,17 +657,11 @@ class MacroAssembler: public Assembler { Register scratch2, Register scratch3, Label* gc_required); - void AllocateAsciiString(Register result, - Register length, - Register scratch1, - Register scratch2, - Register scratch3, - Label* gc_required); - void AllocateAsciiString(Register result, - int length, - Register scratch1, - Register scratch2, - Label* gc_required); + void AllocateOneByteString(Register result, Register length, + Register scratch1, Register scratch2, + Register scratch3, Label* gc_required); + void AllocateOneByteString(Register result, int length, Register scratch1, + Register scratch2, Label* gc_required); // Allocate a raw cons string object. Only the map field of the result is // initialized. @@ -676,10 +669,8 @@ class MacroAssembler: public Assembler { Register scratch1, Register scratch2, Label* gc_required); - void AllocateAsciiConsString(Register result, - Register scratch1, - Register scratch2, - Label* gc_required); + void AllocateOneByteConsString(Register result, Register scratch1, + Register scratch2, Label* gc_required); // Allocate a raw sliced string object. Only the map field of the result is // initialized. @@ -687,10 +678,8 @@ class MacroAssembler: public Assembler { Register scratch1, Register scratch2, Label* gc_required); - void AllocateAsciiSlicedString(Register result, - Register scratch1, - Register scratch2, - Label* gc_required); + void AllocateOneByteSlicedString(Register result, Register scratch1, + Register scratch2, Label* gc_required); // Copy memory, byte-by-byte, from source to destination. Not optimized for // long or aligned copies. @@ -914,29 +903,27 @@ class MacroAssembler: public Assembler { Register scratch2, Label* not_found); - // Check whether the instance type represents a flat ASCII string. Jump to the - // label if not. If the instance type can be scratched specify same register - // for both instance type and scratch. - void JumpIfInstanceTypeIsNotSequentialAscii(Register instance_type, - Register scratch, - Label* on_not_flat_ascii_string); + // Check whether the instance type represents a flat one-byte string. Jump to + // the label if not. If the instance type can be scratched specify same + // register for both instance type and scratch. + void JumpIfInstanceTypeIsNotSequentialOneByte( + Register instance_type, Register scratch, + Label* on_not_flat_one_byte_string); - // Checks if both objects are sequential ASCII strings, and jumps to label + // Checks if both objects are sequential one-byte strings, and jumps to label // if either is not. - void JumpIfNotBothSequentialAsciiStrings(Register object1, - Register object2, - Register scratch1, - Register scratch2, - Label* on_not_flat_ascii_strings); + void JumpIfNotBothSequentialOneByteStrings( + Register object1, Register object2, Register scratch1, Register scratch2, + Label* on_not_flat_one_byte_strings); // Checks if the given register or operand is a unique name - void JumpIfNotUniqueName(Register reg, Label* not_unique_name, - Label::Distance distance = Label::kFar) { - JumpIfNotUniqueName(Operand(reg), not_unique_name, distance); + void JumpIfNotUniqueNameInstanceType(Register reg, Label* not_unique_name, + Label::Distance distance = Label::kFar) { + JumpIfNotUniqueNameInstanceType(Operand(reg), not_unique_name, distance); } - void JumpIfNotUniqueName(Operand operand, Label* not_unique_name, - Label::Distance distance = Label::kFar); + void JumpIfNotUniqueNameInstanceType(Operand operand, Label* not_unique_name, + Label::Distance distance = Label::kFar); void EmitSeqStringSetCharCheck(Register string, Register index, |