OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 1951 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1962 // Operand created by UseRegister is guaranteed to be live until the end of | 1962 // Operand created by UseRegister is guaranteed to be live until the end of |
1963 // instruction. This means that register allocator will not reuse it's | 1963 // instruction. This means that register allocator will not reuse it's |
1964 // register for any other operand inside instruction. | 1964 // register for any other operand inside instruction. |
1965 // Operand created by UseRegisterAtStart is guaranteed to be live only at | 1965 // Operand created by UseRegisterAtStart is guaranteed to be live only at |
1966 // instruction start. Register allocator is free to assign the same register | 1966 // instruction start. Register allocator is free to assign the same register |
1967 // to some other operand used inside instruction (i.e. temporary or | 1967 // to some other operand used inside instruction (i.e. temporary or |
1968 // output). | 1968 // output). |
1969 LOperand* UseRegister(HValue* value); | 1969 LOperand* UseRegister(HValue* value); |
1970 LOperand* UseRegisterAtStart(HValue* value); | 1970 LOperand* UseRegisterAtStart(HValue* value); |
1971 | 1971 |
1972 // A value in a register that may be trashed. | 1972 // An operand value in a register that may be trashed. |
1973 LOperand* UseTempRegister(HValue* value); | 1973 LOperand* UseTempRegister(HValue* value); |
| 1974 |
| 1975 // An operand value in a register or stack slot. |
1974 LOperand* Use(HValue* value); | 1976 LOperand* Use(HValue* value); |
1975 LOperand* UseAtStart(HValue* value); | 1977 LOperand* UseAtStart(HValue* value); |
| 1978 |
| 1979 // An operand value in a register, stack slot or a constant operand. |
1976 LOperand* UseOrConstant(HValue* value); | 1980 LOperand* UseOrConstant(HValue* value); |
1977 LOperand* UseOrConstantAtStart(HValue* value); | 1981 LOperand* UseOrConstantAtStart(HValue* value); |
| 1982 |
| 1983 // An operand value in a register or a constant operand. |
1978 LOperand* UseRegisterOrConstant(HValue* value); | 1984 LOperand* UseRegisterOrConstant(HValue* value); |
1979 LOperand* UseRegisterOrConstantAtStart(HValue* value); | 1985 LOperand* UseRegisterOrConstantAtStart(HValue* value); |
1980 | 1986 |
| 1987 // An operand value in register, stack slot or a constant operand. |
| 1988 // Will not be moved to a register even if one is freely available. |
| 1989 LOperand* UseAny(HValue* value); |
| 1990 |
1981 // Methods for setting up define-use relationships. | 1991 // Methods for setting up define-use relationships. |
1982 // Return the same instruction that they are passed. | 1992 // Return the same instruction that they are passed. |
1983 template<int I, int T> | 1993 template<int I, int T> |
1984 LInstruction* Define(LTemplateInstruction<1, I, T>* instr, | 1994 LInstruction* Define(LTemplateInstruction<1, I, T>* instr, |
1985 LUnallocated* result); | 1995 LUnallocated* result); |
1986 template<int I, int T> | 1996 template<int I, int T> |
1987 LInstruction* Define(LTemplateInstruction<1, I, T>* instr); | 1997 LInstruction* Define(LTemplateInstruction<1, I, T>* instr); |
1988 template<int I, int T> | 1998 template<int I, int T> |
1989 LInstruction* DefineAsRegister(LTemplateInstruction<1, I, T>* instr); | 1999 LInstruction* DefineAsRegister(LTemplateInstruction<1, I, T>* instr); |
1990 template<int I, int T> | 2000 template<int I, int T> |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2048 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2058 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2049 }; | 2059 }; |
2050 | 2060 |
2051 #undef DECLARE_HYDROGEN_ACCESSOR | 2061 #undef DECLARE_HYDROGEN_ACCESSOR |
2052 #undef DECLARE_INSTRUCTION | 2062 #undef DECLARE_INSTRUCTION |
2053 #undef DECLARE_CONCRETE_INSTRUCTION | 2063 #undef DECLARE_CONCRETE_INSTRUCTION |
2054 | 2064 |
2055 } } // namespace v8::internal | 2065 } } // namespace v8::internal |
2056 | 2066 |
2057 #endif // V8_X64_LITHIUM_X64_H_ | 2067 #endif // V8_X64_LITHIUM_X64_H_ |
OLD | NEW |