OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_FULL_CODEGEN_H_ | 5 #ifndef V8_FULL_CODEGEN_H_ |
6 #define V8_FULL_CODEGEN_H_ | 6 #define V8_FULL_CODEGEN_H_ |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 #elif V8_TARGET_ARCH_X64 | 105 #elif V8_TARGET_ARCH_X64 |
106 static const int kCodeSizeMultiplier = 170; | 106 static const int kCodeSizeMultiplier = 170; |
107 static const int kBootCodeSizeMultiplier = 140; | 107 static const int kBootCodeSizeMultiplier = 140; |
108 #elif V8_TARGET_ARCH_ARM | 108 #elif V8_TARGET_ARCH_ARM |
109 static const int kCodeSizeMultiplier = 149; | 109 static const int kCodeSizeMultiplier = 149; |
110 static const int kBootCodeSizeMultiplier = 110; | 110 static const int kBootCodeSizeMultiplier = 110; |
111 #elif V8_TARGET_ARCH_ARM64 | 111 #elif V8_TARGET_ARCH_ARM64 |
112 // TODO(all): Copied ARM value. Check this is sensible for ARM64. | 112 // TODO(all): Copied ARM value. Check this is sensible for ARM64. |
113 static const int kCodeSizeMultiplier = 149; | 113 static const int kCodeSizeMultiplier = 149; |
114 static const int kBootCodeSizeMultiplier = 110; | 114 static const int kBootCodeSizeMultiplier = 110; |
| 115 #elif V8_TARGET_ARCH_PPC64 |
| 116 // TODO(all): Check this is sensible for PPC64. |
| 117 static const int kCodeSizeMultiplier = 142; |
| 118 static const int kBootCodeSizeMultiplier = 175; |
| 119 #elif V8_TARGET_ARCH_PPC |
| 120 // TODO(all): Check this is sensible for PPC. |
| 121 static const int kCodeSizeMultiplier = 142; |
| 122 static const int kBootCodeSizeMultiplier = 130; |
115 #elif V8_TARGET_ARCH_MIPS | 123 #elif V8_TARGET_ARCH_MIPS |
116 static const int kCodeSizeMultiplier = 149; | 124 static const int kCodeSizeMultiplier = 149; |
117 static const int kBootCodeSizeMultiplier = 120; | 125 static const int kBootCodeSizeMultiplier = 120; |
118 #elif V8_TARGET_ARCH_MIPS64 | 126 #elif V8_TARGET_ARCH_MIPS64 |
119 static const int kCodeSizeMultiplier = 149; | 127 static const int kCodeSizeMultiplier = 149; |
120 static const int kBootCodeSizeMultiplier = 120; | 128 static const int kBootCodeSizeMultiplier = 120; |
121 #else | 129 #else |
122 #error Unsupported target architecture. | 130 #error Unsupported target architecture. |
123 #endif | 131 #endif |
124 | 132 |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 Label* if_true, | 331 Label* if_true, |
324 Label* if_false, | 332 Label* if_false, |
325 Label* fall_through); | 333 Label* fall_through); |
326 #elif V8_TARGET_ARCH_MIPS64 | 334 #elif V8_TARGET_ARCH_MIPS64 |
327 void Split(Condition cc, | 335 void Split(Condition cc, |
328 Register lhs, | 336 Register lhs, |
329 const Operand& rhs, | 337 const Operand& rhs, |
330 Label* if_true, | 338 Label* if_true, |
331 Label* if_false, | 339 Label* if_false, |
332 Label* fall_through); | 340 Label* fall_through); |
333 #else // All non-mips arch. | 341 #elif V8_TARGET_ARCH_PPC |
| 342 void Split(Condition cc, |
| 343 Label* if_true, |
| 344 Label* if_false, |
| 345 Label* fall_through, |
| 346 CRegister cr = cr7); |
| 347 #else // All other arch. |
334 void Split(Condition cc, | 348 void Split(Condition cc, |
335 Label* if_true, | 349 Label* if_true, |
336 Label* if_false, | 350 Label* if_false, |
337 Label* fall_through); | 351 Label* fall_through); |
338 #endif // V8_TARGET_ARCH_MIPS | 352 #endif |
339 | 353 |
340 // Load the value of a known (PARAMETER, LOCAL, or CONTEXT) variable into | 354 // Load the value of a known (PARAMETER, LOCAL, or CONTEXT) variable into |
341 // a register. Emits a context chain walk if if necessary (so does | 355 // a register. Emits a context chain walk if if necessary (so does |
342 // SetVar) so avoid calling both on the same variable. | 356 // SetVar) so avoid calling both on the same variable. |
343 void GetVar(Register destination, Variable* var); | 357 void GetVar(Register destination, Variable* var); |
344 | 358 |
345 // Assign to a known (PARAMETER, LOCAL, or CONTEXT) variable. If it's in | 359 // Assign to a known (PARAMETER, LOCAL, or CONTEXT) variable. If it's in |
346 // the context, the write barrier will be emitted and source, scratch0, | 360 // the context, the write barrier will be emitted and source, scratch0, |
347 // scratch1 will be clobbered. Emits a context chain walk if if necessary | 361 // scratch1 will be clobbered. Emits a context chain walk if if necessary |
348 // (so does GetVar) so avoid calling both on the same variable. | 362 // (so does GetVar) so avoid calling both on the same variable. |
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
942 | 956 |
943 Address start_; | 957 Address start_; |
944 Address instruction_start_; | 958 Address instruction_start_; |
945 uint32_t length_; | 959 uint32_t length_; |
946 }; | 960 }; |
947 | 961 |
948 | 962 |
949 } } // namespace v8::internal | 963 } } // namespace v8::internal |
950 | 964 |
951 #endif // V8_FULL_CODEGEN_H_ | 965 #endif // V8_FULL_CODEGEN_H_ |
OLD | NEW |