summaryrefslogtreecommitdiff
path: root/deps/v8/src/ia32/macro-assembler-ia32.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/ia32/macro-assembler-ia32.h')
-rw-r--r--deps/v8/src/ia32/macro-assembler-ia32.h60
1 files changed, 12 insertions, 48 deletions
diff --git a/deps/v8/src/ia32/macro-assembler-ia32.h b/deps/v8/src/ia32/macro-assembler-ia32.h
index 8aa7d38073..e754a87128 100644
--- a/deps/v8/src/ia32/macro-assembler-ia32.h
+++ b/deps/v8/src/ia32/macro-assembler-ia32.h
@@ -57,6 +57,10 @@ class MacroAssembler: public Assembler {
MacroAssembler(Isolate* isolate, void* buffer, int size,
CodeObjectRequired create_code_object);
+ int jit_cookie() const { return jit_cookie_; }
+
+ Isolate* isolate() const { return isolate_; }
+
void Load(Register dst, const Operand& src, Representation r);
void Store(Register src, const Operand& dst, Representation r);
@@ -299,9 +303,6 @@ class MacroAssembler: public Assembler {
}
}
- // Compare the given value and the value of weak cell.
- void CmpWeakValue(Register value, Handle<WeakCell> cell, Register scratch);
-
void GetWeakValue(Register value, Handle<WeakCell> cell);
// Load the value of the weak cell in the value register. Branch to the given
@@ -390,13 +391,6 @@ class MacroAssembler: public Assembler {
void CheckMap(Register obj, Handle<Map> map, Label* fail,
SmiCheckType smi_check_type);
- // Check if the map of an object is equal to a specified weak map and branch
- // to a specified target if equal. Skip the smi check if not required
- // (object is known to be a heap object)
- void DispatchWeakMap(Register obj, Register scratch1, Register scratch2,
- Handle<WeakCell> cell, Handle<Code> success,
- SmiCheckType smi_check_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
@@ -405,14 +399,6 @@ class MacroAssembler: public Assembler {
Condition IsObjectStringType(Register heap_object, Register map,
Register instance_type);
- // Check if the object in register heap_object is a name. 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 IsObjectNameType(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();
@@ -529,22 +515,12 @@ class MacroAssembler: public Assembler {
void LoadPowerOf2(XMMRegister dst, Register scratch, int power);
- // Abort execution if argument is not a number, enabled via --debug-code.
- void AssertNumber(Register object);
- void AssertNotNumber(Register object);
-
// Abort execution if argument is not a smi, enabled via --debug-code.
void AssertSmi(Register object);
// Abort execution if argument is a smi, enabled via --debug-code.
void AssertNotSmi(Register object);
- // Abort execution if argument is not a string, enabled via --debug-code.
- void AssertString(Register object);
-
- // Abort execution if argument is not a name, enabled via --debug-code.
- void AssertName(Register object);
-
// Abort execution if argument is not a JSFunction, enabled via --debug-code.
void AssertFunction(Register object);
@@ -554,10 +530,7 @@ class MacroAssembler: public Assembler {
// Abort execution if argument is not a JSGeneratorObject,
// enabled via --debug-code.
- void AssertGeneratorObject(Register object);
-
- // Abort execution if argument is not a JSReceiver, enabled via --debug-code.
- void AssertReceiver(Register object);
+ void AssertGeneratorObject(Register object, Register suspend_flags);
// Abort execution if argument is not undefined or an AllocationSite, enabled
// via --debug-code.
@@ -633,14 +606,6 @@ class MacroAssembler: public Assembler {
// Check a boolean-bit of a Smi field.
void BooleanBitTest(Register object, int field_offset, int bit_index);
- // Check if result is zero and op is negative.
- void NegativeZeroTest(Register result, Register op, Label* then_label);
-
- // Check if result is zero and any of op1 and op2 are negative.
- // Register scratch is destroyed, and it must be different from op2.
- void NegativeZeroTest(Register result, Register op1, Register op2,
- Register scratch, Label* then_label);
-
// Machine code version of Map::GetConstructor().
// |temp| holds |result|'s map when done.
void GetMapConstructor(Register result, Register map, Register temp);
@@ -654,9 +619,6 @@ class MacroAssembler: public Assembler {
// Tail call a code stub (jump). Generate the code if necessary.
void TailCallStub(CodeStub* stub);
- // Return from a code stub after popping its arguments.
- void StubReturn(int argc);
-
// Call a runtime routine.
void CallRuntime(const Runtime::Function* f, int num_arguments,
SaveFPRegsMode save_doubles = kDontSaveFPRegs);
@@ -752,10 +714,12 @@ class MacroAssembler: public Assembler {
// Non-SSE2 instructions.
void Pextrd(Register dst, XMMRegister src, int8_t imm8);
- void Pinsrd(XMMRegister dst, Register src, int8_t imm8) {
- Pinsrd(dst, Operand(src), imm8);
+ void Pinsrd(XMMRegister dst, Register src, int8_t imm8,
+ bool is_64_bits = false) {
+ Pinsrd(dst, Operand(src), imm8, is_64_bits);
}
- void Pinsrd(XMMRegister dst, const Operand& src, int8_t imm8);
+ void Pinsrd(XMMRegister dst, const Operand& src, int8_t imm8,
+ bool is_64_bits = false);
void Lzcnt(Register dst, Register src) { Lzcnt(dst, Operand(src)); }
void Lzcnt(Register dst, const Operand& src);
@@ -811,8 +775,6 @@ class MacroAssembler: public Assembler {
// Use --debug_code to enable.
void Assert(Condition cc, BailoutReason reason);
- void AssertFastElements(Register elements);
-
// Like Assert(), but always enabled.
void Check(Condition cc, BailoutReason reason);
@@ -882,8 +844,10 @@ class MacroAssembler: public Assembler {
private:
bool generating_stub_;
bool has_frame_;
+ Isolate* isolate_;
// This handle will be patched with the code object on installation.
Handle<Object> code_object_;
+ int jit_cookie_;
// Helper functions for generating invokes.
void InvokePrologue(const ParameterCount& expected,