diff options
Diffstat (limited to 'src/x87/macro-assembler-x87.h')
-rw-r--r-- | src/x87/macro-assembler-x87.h | 97 |
1 files changed, 11 insertions, 86 deletions
diff --git a/src/x87/macro-assembler-x87.h b/src/x87/macro-assembler-x87.h index 6bb63594..5f0d6bf8 100644 --- a/src/x87/macro-assembler-x87.h +++ b/src/x87/macro-assembler-x87.h @@ -263,16 +263,6 @@ class MacroAssembler: public Assembler { // Load the global proxy from the current context. void LoadGlobalProxy(Register dst); - // Conditionally load the cached Array transitioned map of type - // transitioned_kind from the native context if the map in register - // map_in_out is the cached Array map in the native context of - // expected_kind. - void LoadTransitionedArrayMapConditional(ElementsKind expected_kind, - ElementsKind transitioned_kind, - Register map_in_out, - Register scratch, - Label* no_map_match); - // Load the global function with the given index. void LoadGlobalFunction(int index, Register function); @@ -342,9 +332,10 @@ class MacroAssembler: public Assembler { const ParameterCount& actual, InvokeFlag flag, const CallWrapper& call_wrapper); - void FloodFunctionIfStepping(Register fun, Register new_target, - const ParameterCount& expected, - const ParameterCount& actual); + // On function call, call into the debugger if necessary. + void CheckDebugHook(Register fun, Register new_target, + const ParameterCount& expected, + const ParameterCount& actual); // Invoke the JavaScript function in the given register. Changes the // current context to the context in the function before invoking. @@ -381,23 +372,6 @@ class MacroAssembler: public Assembler { // Compare instance type for map. void CmpInstanceType(Register map, InstanceType type); - // Check if a map for a JSObject indicates that the object can have both smi - // and HeapObject elements. Jump to the specified label if it does not. - void CheckFastObjectElements(Register map, Label* fail, - Label::Distance distance = Label::kFar); - - // Check if a map for a JSObject indicates that the object has fast smi only - // elements. Jump to the specified label if it does not. - void CheckFastSmiElements(Register map, Label* fail, - Label::Distance distance = Label::kFar); - - // Check to see if maybe_number can be stored as a double in - // FastDoubleElements. If it can, store it at the index specified by key in - // the FastDoubleElements array elements, otherwise jump to fail. - void StoreNumberToDoubleElements(Register maybe_number, Register elements, - Register key, Register scratch, Label* fail, - int offset = 0); - // Compare an object's map with the specified map. void CompareMap(Register obj, Handle<Map> map); @@ -494,7 +468,12 @@ class MacroAssembler: public Assembler { test(value, Immediate(kSmiTagMask)); j(not_zero, not_smi_label, distance); } - + // Jump if the operand is not a smi. + inline void JumpIfNotSmi(Operand value, Label* smi_label, + Label::Distance distance = Label::kFar) { + test(value, Immediate(kSmiTagMask)); + j(not_zero, smi_label, distance); + } // Jump if the value cannot be represented by a smi. inline void JumpIfNotValidSmiValue(Register value, Register scratch, Label* on_invalid, @@ -629,31 +608,6 @@ class MacroAssembler: public Assembler { void AllocateHeapNumber(Register result, Register scratch1, Register scratch2, Label* gc_required, MutableMode mode = IMMUTABLE); - // Allocate a sequential string. All the header fields of the string object - // are initialized. - void AllocateTwoByteString(Register result, Register length, - Register scratch1, Register scratch2, - Register scratch3, 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. - void AllocateTwoByteConsString(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. - void AllocateTwoByteSlicedString(Register result, Register scratch1, - Register scratch2, Label* gc_required); - void AllocateOneByteSlicedString(Register result, Register scratch1, - Register scratch2, Label* gc_required); - // Allocate and initialize a JSValue wrapper with the specified {constructor} // and {value}. void AllocateJSValue(Register result, Register constructor, Register value, @@ -683,14 +637,6 @@ class MacroAssembler: public Assembler { // |temp| holds |result|'s map when done. void GetMapConstructor(Register result, Register map, Register temp); - // Try to get function prototype of a function and puts the value in - // the result register. Checks that the function really is a - // function and jumps to the miss label if the fast checks fail. The - // function register will be untouched; the other registers may be - // clobbered. - void TryGetFunctionPrototype(Register function, Register result, - Register scratch, Label* miss); - // --------------------------------------------------------------------------- // Runtime calls @@ -868,13 +814,6 @@ class MacroAssembler: public Assembler { // --------------------------------------------------------------------------- // String utilities. - // 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 one-byte strings, and jumps to label // if either is not. void JumpIfNotBothSequentialOneByteStrings( @@ -898,7 +837,7 @@ class MacroAssembler: public Assembler { } // Load the type feedback vector from a JavaScript frame. - void EmitLoadTypeFeedbackVector(Register vector); + void EmitLoadFeedbackVector(Register vector); // Activation support. void EnterFrame(StackFrame::Type type); @@ -922,20 +861,6 @@ class MacroAssembler: public Assembler { Register scratch_reg, Label* no_memento_found); - void JumpIfJSArrayHasAllocationMemento(Register receiver_reg, - Register scratch_reg, - Label* memento_found) { - Label no_memento_found; - TestJSArrayForAllocationMemento(receiver_reg, scratch_reg, - &no_memento_found); - j(equal, memento_found); - bind(&no_memento_found); - } - - // Jumps to found label if a prototype map has dictionary elements. - void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0, - Register scratch1, Label* found); - private: bool generating_stub_; bool has_frame_; |