| OLD | NEW | 
|     1 // Copyright 2014 the V8 project authors. All rights reserved. |     1 // Copyright 2014 the V8 project authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #ifndef V8_PPC_MACRO_ASSEMBLER_PPC_H_ |     5 #ifndef V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 
|     6 #define V8_PPC_MACRO_ASSEMBLER_PPC_H_ |     6 #define V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 
|     7  |     7  | 
|     8 #include "src/assembler.h" |     8 #include "src/assembler.h" | 
|     9 #include "src/bailout-reason.h" |     9 #include "src/bailout-reason.h" | 
|    10 #include "src/frames.h" |    10 #include "src/frames.h" | 
| (...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   426 #endif |   426 #endif | 
|   427  |   427  | 
|   428   // Generates function and stub prologue code. |   428   // Generates function and stub prologue code. | 
|   429   void StubPrologue(StackFrame::Type type, Register base = no_reg, |   429   void StubPrologue(StackFrame::Type type, Register base = no_reg, | 
|   430                     int prologue_offset = 0); |   430                     int prologue_offset = 0); | 
|   431   void Prologue(bool code_pre_aging, Register base, int prologue_offset = 0); |   431   void Prologue(bool code_pre_aging, Register base, int prologue_offset = 0); | 
|   432  |   432  | 
|   433   // Enter exit frame. |   433   // Enter exit frame. | 
|   434   // stack_space - extra stack space, used for parameters before call to C. |   434   // stack_space - extra stack space, used for parameters before call to C. | 
|   435   // At least one slot (for the return address) should be provided. |   435   // At least one slot (for the return address) should be provided. | 
|   436   void EnterExitFrame(bool save_doubles, int stack_space = 1); |   436   void EnterExitFrame(bool save_doubles, int stack_space = 1, | 
 |   437                       StackFrame::Type frame_type = StackFrame::EXIT); | 
|   437  |   438  | 
|   438   // Leave the current exit frame. Expects the return value in r0. |   439   // Leave the current exit frame. Expects the return value in r0. | 
|   439   // Expect the number of values, pushed prior to the exit frame, to |   440   // Expect the number of values, pushed prior to the exit frame, to | 
|   440   // remove in a register (or no_reg, if there is nothing to remove). |   441   // remove in a register (or no_reg, if there is nothing to remove). | 
|   441   void LeaveExitFrame(bool save_doubles, Register argument_count, |   442   void LeaveExitFrame(bool save_doubles, Register argument_count, | 
|   442                       bool restore_context, |   443                       bool restore_context, | 
|   443                       bool argument_count_is_length = false); |   444                       bool argument_count_is_length = false); | 
|   444  |   445  | 
|   445   // Get the actual activation frame alignment for target environment. |   446   // Get the actual activation frame alignment for target environment. | 
|   446   static int ActivationFrameAlignment(); |   447   static int ActivationFrameAlignment(); | 
| (...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1065   void CallCFunction(Register function, int num_arguments); |  1066   void CallCFunction(Register function, int num_arguments); | 
|  1066   void CallCFunction(ExternalReference function, int num_reg_arguments, |  1067   void CallCFunction(ExternalReference function, int num_reg_arguments, | 
|  1067                      int num_double_arguments); |  1068                      int num_double_arguments); | 
|  1068   void CallCFunction(Register function, int num_reg_arguments, |  1069   void CallCFunction(Register function, int num_reg_arguments, | 
|  1069                      int num_double_arguments); |  1070                      int num_double_arguments); | 
|  1070  |  1071  | 
|  1071   void MovFromFloatParameter(DoubleRegister dst); |  1072   void MovFromFloatParameter(DoubleRegister dst); | 
|  1072   void MovFromFloatResult(DoubleRegister dst); |  1073   void MovFromFloatResult(DoubleRegister dst); | 
|  1073  |  1074  | 
|  1074   // Jump to a runtime routine. |  1075   // Jump to a runtime routine. | 
|  1075   void JumpToExternalReference(const ExternalReference& builtin); |  1076   void JumpToExternalReference(const ExternalReference& builtin, | 
 |  1077                                bool builtin_exit_frame = false); | 
|  1076  |  1078  | 
|  1077   Handle<Object> CodeObject() { |  1079   Handle<Object> CodeObject() { | 
|  1078     DCHECK(!code_object_.is_null()); |  1080     DCHECK(!code_object_.is_null()); | 
|  1079     return code_object_; |  1081     return code_object_; | 
|  1080   } |  1082   } | 
|  1081  |  1083  | 
|  1082  |  1084  | 
|  1083   // Emit code for a truncating division by a constant. The dividend register is |  1085   // Emit code for a truncating division by a constant. The dividend register is | 
|  1084   // unchanged and ip gets clobbered. Dividend and result must be different. |  1086   // unchanged and ip gets clobbered. Dividend and result must be different. | 
|  1085   void TruncatingDiv(Register result, Register dividend, int32_t divisor); |  1087   void TruncatingDiv(Register result, Register dividend, int32_t divisor); | 
| (...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1667 #define ACCESS_MASM(masm)    \ |  1669 #define ACCESS_MASM(masm)    \ | 
|  1668   masm->stop(__FILE_LINE__); \ |  1670   masm->stop(__FILE_LINE__); \ | 
|  1669   masm-> |  1671   masm-> | 
|  1670 #else |  1672 #else | 
|  1671 #define ACCESS_MASM(masm) masm-> |  1673 #define ACCESS_MASM(masm) masm-> | 
|  1672 #endif |  1674 #endif | 
|  1673 }  // namespace internal |  1675 }  // namespace internal | 
|  1674 }  // namespace v8 |  1676 }  // namespace v8 | 
|  1675  |  1677  | 
|  1676 #endif  // V8_PPC_MACRO_ASSEMBLER_PPC_H_ |  1678 #endif  // V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 
| OLD | NEW |