diff options
Diffstat (limited to 'deps/v8/src/ppc/macro-assembler-ppc.h')
-rw-r--r-- | deps/v8/src/ppc/macro-assembler-ppc.h | 45 |
1 files changed, 18 insertions, 27 deletions
diff --git a/deps/v8/src/ppc/macro-assembler-ppc.h b/deps/v8/src/ppc/macro-assembler-ppc.h index 146489d131..04e9bd85bd 100644 --- a/deps/v8/src/ppc/macro-assembler-ppc.h +++ b/deps/v8/src/ppc/macro-assembler-ppc.h @@ -102,9 +102,7 @@ class MacroAssembler : public Assembler { MacroAssembler(Isolate* isolate, void* buffer, int size); - // Returns the size of a call in instructions. Note, the value returned is - // only valid as long as no entries are added to the constant pool between - // checking the call size and emitting the actual call. + // Returns the size of a call in instructions. static int CallSize(Register target); int CallSize(Address target, RelocInfo::Mode rmode, Condition cond = al); static int CallSizeNotPredictableCodeSize(Address target, @@ -379,8 +377,9 @@ class MacroAssembler : public Assembler { void Prologue(bool code_pre_aging, int prologue_offset = 0); // Enter exit frame. - // stack_space - extra stack space, used for alignment before call to C. - void EnterExitFrame(bool save_doubles, int stack_space = 0); + // stack_space - extra stack space, used for parameters before call to C. + // At least one slot (for the return address) should be provided. + void EnterExitFrame(bool save_doubles, int stack_space = 1); // Leave the current exit frame. Expects the return value in r0. // Expect the number of values, pushed prior to the exit frame, to @@ -464,6 +463,8 @@ class MacroAssembler : public Assembler { void MovInt64ComponentsToDouble(DoubleRegister dst, Register src_hi, Register src_lo, Register scratch); #endif + void InsertDoubleLow(DoubleRegister dst, Register src, Register scratch); + void InsertDoubleHigh(DoubleRegister dst, Register src, Register scratch); void MovDoubleLowToInt(Register dst, DoubleRegister src); void MovDoubleHighToInt(Register dst, DoubleRegister src); void MovDoubleToInt64( @@ -543,19 +544,12 @@ class MacroAssembler : public Assembler { // --------------------------------------------------------------------------- // Exception handling - // Push a new try handler and link into try handler chain. - void PushTryHandler(StackHandler::Kind kind, int handler_index); + // Push a new stack handler and link into stack handler chain. + void PushStackHandler(); - // Unlink the stack handler on top of the stack from the try handler chain. + // Unlink the stack handler on top of the stack from the stack handler chain. // Must preserve the result register. - void PopTryHandler(); - - // Passes thrown value to the handler of top of the try handler chain. - void Throw(Register value); - - // Propagates an uncatchable exception to the top of the current JS stack's - // handler chain. - void ThrowUncatchable(Register value); + void PopStackHandler(); // --------------------------------------------------------------------------- // Inline caching support @@ -684,6 +678,11 @@ class MacroAssembler : public Assembler { // --------------------------------------------------------------------------- // Support functions. + // Machine code version of Map::GetConstructor(). + // |temp| holds |result|'s map when done, and |temp2| its instance type. + void GetMapConstructor(Register result, Register map, Register temp, + Register temp2); + // 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 @@ -1361,7 +1360,7 @@ class MacroAssembler : public Assembler { // --------------------------------------------------------------------------- // Patching helpers. - // Retrieve/patch the relocated value (lis/ori pair or constant pool load). + // Retrieve/patch the relocated value (lis/ori pair). void GetRelocatedValue(Register location, Register result, Register scratch); void SetRelocatedValue(Register location, Register scratch, Register new_value); @@ -1481,22 +1480,14 @@ class MacroAssembler : public Assembler { inline void GetMarkBits(Register addr_reg, Register bitmap_reg, Register mask_reg); - // Helper for throwing exceptions. Compute a handler address and jump to - // it. See the implementation for register usage. - void JumpToHandlerEntry(); + static const RegList kSafepointSavedRegisters; + static const int kNumSafepointSavedRegisters; // Compute memory operands for safepoint stack slots. static int SafepointRegisterStackIndex(int reg_code); MemOperand SafepointRegisterSlot(Register reg); MemOperand SafepointRegistersAndDoublesSlot(Register reg); -#if V8_OOL_CONSTANT_POOL - // Loads the constant pool pointer (kConstantPoolRegister). - enum CodeObjectAccessMethod { CAN_USE_IP, CONSTRUCT_INTERNAL_REFERENCE }; - void LoadConstantPoolPointerRegister(CodeObjectAccessMethod access_method, - int ip_code_entry_delta = 0); -#endif - bool generating_stub_; bool has_frame_; // This handle will be patched with the code object on installation. |