OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64_LITHIUM_ARM64_H_ | 5 #ifndef V8_ARM64_LITHIUM_ARM64_H_ |
6 #define V8_ARM64_LITHIUM_ARM64_H_ | 6 #define V8_ARM64_LITHIUM_ARM64_H_ |
7 | 7 |
8 #include "hydrogen.h" | 8 #include "hydrogen.h" |
9 #include "lithium-allocator.h" | 9 #include "lithium-allocator.h" |
10 #include "lithium.h" | 10 #include "lithium.h" |
(...skipping 3025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3036 // A constant operand. | 3036 // A constant operand. |
3037 MUST_USE_RESULT LConstantOperand* UseConstant(HValue* value); | 3037 MUST_USE_RESULT LConstantOperand* UseConstant(HValue* value); |
3038 | 3038 |
3039 // An input operand in register, stack slot or a constant operand. | 3039 // An input operand in register, stack slot or a constant operand. |
3040 // Will not be moved to a register even if one is freely available. | 3040 // Will not be moved to a register even if one is freely available. |
3041 virtual MUST_USE_RESULT LOperand* UseAny(HValue* value); | 3041 virtual MUST_USE_RESULT LOperand* UseAny(HValue* value); |
3042 | 3042 |
3043 // Temporary operand that must be in a register. | 3043 // Temporary operand that must be in a register. |
3044 MUST_USE_RESULT LUnallocated* TempRegister(); | 3044 MUST_USE_RESULT LUnallocated* TempRegister(); |
3045 | 3045 |
| 3046 // Temporary operand that must be in a double register. |
| 3047 MUST_USE_RESULT LUnallocated* TempDoubleRegister(); |
| 3048 |
3046 // Temporary operand that must be in a fixed double register. | 3049 // Temporary operand that must be in a fixed double register. |
3047 MUST_USE_RESULT LOperand* FixedTemp(DoubleRegister reg); | 3050 MUST_USE_RESULT LOperand* FixedTemp(DoubleRegister reg); |
3048 | 3051 |
3049 // Methods for setting up define-use relationships. | 3052 // Methods for setting up define-use relationships. |
3050 // Return the same instruction that they are passed. | 3053 // Return the same instruction that they are passed. |
3051 LInstruction* Define(LTemplateResultInstruction<1>* instr, | 3054 LInstruction* Define(LTemplateResultInstruction<1>* instr, |
3052 LUnallocated* result); | 3055 LUnallocated* result); |
3053 LInstruction* DefineAsRegister(LTemplateResultInstruction<1>* instr); | 3056 LInstruction* DefineAsRegister(LTemplateResultInstruction<1>* instr); |
3054 LInstruction* DefineAsSpilled(LTemplateResultInstruction<1>* instr, | 3057 LInstruction* DefineAsSpilled(LTemplateResultInstruction<1>* instr, |
3055 int index); | 3058 int index); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3092 | 3095 |
3093 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 3096 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
3094 }; | 3097 }; |
3095 | 3098 |
3096 #undef DECLARE_HYDROGEN_ACCESSOR | 3099 #undef DECLARE_HYDROGEN_ACCESSOR |
3097 #undef DECLARE_CONCRETE_INSTRUCTION | 3100 #undef DECLARE_CONCRETE_INSTRUCTION |
3098 | 3101 |
3099 } } // namespace v8::internal | 3102 } } // namespace v8::internal |
3100 | 3103 |
3101 #endif // V8_ARM64_LITHIUM_ARM64_H_ | 3104 #endif // V8_ARM64_LITHIUM_ARM64_H_ |
OLD | NEW |