| 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_COMPILER_LINKAGE_H_ | 5 #ifndef V8_COMPILER_LINKAGE_H_ | 
| 6 #define V8_COMPILER_LINKAGE_H_ | 6 #define V8_COMPILER_LINKAGE_H_ | 
| 7 | 7 | 
| 8 #include "src/base/flags.h" | 8 #include "src/base/flags.h" | 
| 9 #include "src/compiler/frame.h" | 9 #include "src/compiler/frame.h" | 
| 10 #include "src/compiler/operator.h" | 10 #include "src/compiler/operator.h" | 
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 69                               kPointerSize); | 69                               kPointerSize); | 
| 70   } | 70   } | 
| 71 | 71 | 
| 72   static LinkageLocation ForSavedCallerConstantPool() { | 72   static LinkageLocation ForSavedCallerConstantPool() { | 
| 73     DCHECK(V8_EMBEDDED_CONSTANT_POOL); | 73     DCHECK(V8_EMBEDDED_CONSTANT_POOL); | 
| 74     return ForCalleeFrameSlot((StandardFrameConstants::kCallerPCOffset - | 74     return ForCalleeFrameSlot((StandardFrameConstants::kCallerPCOffset - | 
| 75                                StandardFrameConstants::kConstantPoolOffset) / | 75                                StandardFrameConstants::kConstantPoolOffset) / | 
| 76                               kPointerSize); | 76                               kPointerSize); | 
| 77   } | 77   } | 
| 78 | 78 | 
| 79   static LinkageLocation ForSavedCallerMarker() { | 79   static LinkageLocation ForSavedCallerFunction() { | 
| 80     return ForCalleeFrameSlot((StandardFrameConstants::kCallerPCOffset - | 80     return ForCalleeFrameSlot((StandardFrameConstants::kCallerPCOffset - | 
| 81                                StandardFrameConstants::kMarkerOffset) / | 81                                StandardFrameConstants::kFunctionOffset) / | 
| 82                               kPointerSize); | 82                               kPointerSize); | 
| 83   } | 83   } | 
| 84 | 84 | 
| 85   static LinkageLocation ConvertToTailCallerLocation( | 85   static LinkageLocation ConvertToTailCallerLocation( | 
| 86       LinkageLocation caller_location, int stack_param_delta) { | 86       LinkageLocation caller_location, int stack_param_delta) { | 
| 87     if (!caller_location.IsRegister()) { | 87     if (!caller_location.IsRegister()) { | 
| 88       return LinkageLocation(STACK_SLOT, | 88       return LinkageLocation(STACK_SLOT, | 
| 89                              caller_location.GetLocation() - stack_param_delta); | 89                              caller_location.GetLocation() - stack_param_delta); | 
| 90     } | 90     } | 
| 91     return caller_location; | 91     return caller_location; | 
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 157     kHasExceptionHandler = 1u << 3, | 157     kHasExceptionHandler = 1u << 3, | 
| 158     kHasLocalCatchHandler = 1u << 4, | 158     kHasLocalCatchHandler = 1u << 4, | 
| 159     kSupportsTailCalls = 1u << 5, | 159     kSupportsTailCalls = 1u << 5, | 
| 160     kCanUseRoots = 1u << 6, | 160     kCanUseRoots = 1u << 6, | 
| 161     // (arm64 only) native stack should be used for arguments. | 161     // (arm64 only) native stack should be used for arguments. | 
| 162     kUseNativeStack = 1u << 7, | 162     kUseNativeStack = 1u << 7, | 
| 163     // (arm64 only) call instruction has to restore JSSP. | 163     // (arm64 only) call instruction has to restore JSSP. | 
| 164     kRestoreJSSP = 1u << 8, | 164     kRestoreJSSP = 1u << 8, | 
| 165     // Causes the code generator to initialize the root register. | 165     // Causes the code generator to initialize the root register. | 
| 166     kInitializeRootRegister = 1u << 9, | 166     kInitializeRootRegister = 1u << 9, | 
|  | 167     kHasStandardFrameHeader = 1u << 10, | 
| 167     kPatchableCallSiteWithNop = kPatchableCallSite | kNeedsNopAfterCall | 168     kPatchableCallSiteWithNop = kPatchableCallSite | kNeedsNopAfterCall | 
| 168   }; | 169   }; | 
| 169   typedef base::Flags<Flag> Flags; | 170   typedef base::Flags<Flag> Flags; | 
| 170 | 171 | 
| 171   CallDescriptor(Kind kind, MachineType target_type, LinkageLocation target_loc, | 172   CallDescriptor(Kind kind, MachineType target_type, LinkageLocation target_loc, | 
| 172                  const MachineSignature* machine_sig, | 173                  const MachineSignature* machine_sig, | 
| 173                  LocationSignature* location_sig, size_t stack_param_count, | 174                  LocationSignature* location_sig, size_t stack_param_count, | 
| 174                  Operator::Properties properties, | 175                  Operator::Properties properties, | 
| 175                  RegList callee_saved_registers, | 176                  RegList callee_saved_registers, | 
| 176                  RegList callee_saved_fp_registers, Flags flags, | 177                  RegList callee_saved_fp_registers, Flags flags, | 
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 392   CallDescriptor* const incoming_; | 393   CallDescriptor* const incoming_; | 
| 393 | 394 | 
| 394   DISALLOW_COPY_AND_ASSIGN(Linkage); | 395   DISALLOW_COPY_AND_ASSIGN(Linkage); | 
| 395 }; | 396 }; | 
| 396 | 397 | 
| 397 }  // namespace compiler | 398 }  // namespace compiler | 
| 398 }  // namespace internal | 399 }  // namespace internal | 
| 399 }  // namespace v8 | 400 }  // namespace v8 | 
| 400 | 401 | 
| 401 #endif  // V8_COMPILER_LINKAGE_H_ | 402 #endif  // V8_COMPILER_LINKAGE_H_ | 
| OLD | NEW | 
|---|