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 static const int kCodeSizeMultiplier = 200; |
| 117 static const int kBootCodeSizeMultiplier = 120; |
| 118 #elif V8_TARGET_ARCH_PPC |
| 119 static const int kCodeSizeMultiplier = 200; |
| 120 static const int kBootCodeSizeMultiplier = 120; |
115 #elif V8_TARGET_ARCH_MIPS | 121 #elif V8_TARGET_ARCH_MIPS |
116 static const int kCodeSizeMultiplier = 149; | 122 static const int kCodeSizeMultiplier = 149; |
117 static const int kBootCodeSizeMultiplier = 120; | 123 static const int kBootCodeSizeMultiplier = 120; |
118 #elif V8_TARGET_ARCH_MIPS64 | 124 #elif V8_TARGET_ARCH_MIPS64 |
119 static const int kCodeSizeMultiplier = 149; | 125 static const int kCodeSizeMultiplier = 149; |
120 static const int kBootCodeSizeMultiplier = 120; | 126 static const int kBootCodeSizeMultiplier = 120; |
121 #else | 127 #else |
122 #error Unsupported target architecture. | 128 #error Unsupported target architecture. |
123 #endif | 129 #endif |
124 | 130 |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 Label* if_true, | 329 Label* if_true, |
324 Label* if_false, | 330 Label* if_false, |
325 Label* fall_through); | 331 Label* fall_through); |
326 #elif V8_TARGET_ARCH_MIPS64 | 332 #elif V8_TARGET_ARCH_MIPS64 |
327 void Split(Condition cc, | 333 void Split(Condition cc, |
328 Register lhs, | 334 Register lhs, |
329 const Operand& rhs, | 335 const Operand& rhs, |
330 Label* if_true, | 336 Label* if_true, |
331 Label* if_false, | 337 Label* if_false, |
332 Label* fall_through); | 338 Label* fall_through); |
333 #else // All non-mips arch. | 339 #elif V8_TARGET_ARCH_PPC |
| 340 void Split(Condition cc, Label* if_true, Label* if_false, Label* fall_through, |
| 341 CRegister cr = cr7); |
| 342 #else // All other arch. |
334 void Split(Condition cc, | 343 void Split(Condition cc, |
335 Label* if_true, | 344 Label* if_true, |
336 Label* if_false, | 345 Label* if_false, |
337 Label* fall_through); | 346 Label* fall_through); |
338 #endif // V8_TARGET_ARCH_MIPS | 347 #endif |
339 | 348 |
340 // Load the value of a known (PARAMETER, LOCAL, or CONTEXT) variable into | 349 // 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 | 350 // a register. Emits a context chain walk if if necessary (so does |
342 // SetVar) so avoid calling both on the same variable. | 351 // SetVar) so avoid calling both on the same variable. |
343 void GetVar(Register destination, Variable* var); | 352 void GetVar(Register destination, Variable* var); |
344 | 353 |
345 // Assign to a known (PARAMETER, LOCAL, or CONTEXT) variable. If it's in | 354 // 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, | 355 // the context, the write barrier will be emitted and source, scratch0, |
347 // scratch1 will be clobbered. Emits a context chain walk if if necessary | 356 // scratch1 will be clobbered. Emits a context chain walk if if necessary |
348 // (so does GetVar) so avoid calling both on the same variable. | 357 // (so does GetVar) so avoid calling both on the same variable. |
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1036 | 1045 |
1037 Address start_; | 1046 Address start_; |
1038 Address instruction_start_; | 1047 Address instruction_start_; |
1039 uint32_t length_; | 1048 uint32_t length_; |
1040 }; | 1049 }; |
1041 | 1050 |
1042 | 1051 |
1043 } } // namespace v8::internal | 1052 } } // namespace v8::internal |
1044 | 1053 |
1045 #endif // V8_FULL_CODEGEN_H_ | 1054 #endif // V8_FULL_CODEGEN_H_ |
OLD | NEW |