OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 void PushRegistersFromMemory(RegList regs); | 79 void PushRegistersFromMemory(RegList regs); |
80 void PopRegistersToMemory(RegList regs); | 80 void PopRegistersToMemory(RegList regs); |
81 void CopyRegistersFromStackToMemory(Register base, | 81 void CopyRegistersFromStackToMemory(Register base, |
82 Register scratch, | 82 Register scratch, |
83 RegList regs); | 83 RegList regs); |
84 | 84 |
85 | 85 |
86 // --------------------------------------------------------------------------- | 86 // --------------------------------------------------------------------------- |
87 // Activation frames | 87 // Activation frames |
88 | 88 |
89 // Enter or exit a stack frame of the given type. Cannot be used to | |
90 // construct or leave JavaScript frames. | |
91 void EnterInternalFrame(); | 89 void EnterInternalFrame(); |
92 void ExitInternalFrame(); | 90 void LeaveInternalFrame(); |
| 91 |
| 92 // Enter specific kind of exit frame; either EXIT or EXIT_DEBUG. |
| 93 void EnterExitFrame(StackFrame::Type type); |
| 94 void LeaveExitFrame(); |
93 | 95 |
94 | 96 |
95 // --------------------------------------------------------------------------- | 97 // --------------------------------------------------------------------------- |
96 // JavaScript invokes | 98 // JavaScript invokes |
97 | 99 |
98 // Invoke the JavaScript function code by either calling or jumping. | 100 // Invoke the JavaScript function code by either calling or jumping. |
99 void InvokeCode(const Operand& code, | 101 void InvokeCode(const Operand& code, |
100 const ParameterCount& expected, | 102 const ParameterCount& expected, |
101 const ParameterCount& actual, | 103 const ParameterCount& actual, |
102 InvokeFlag flag); | 104 InvokeFlag flag); |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 void CallRuntime(Runtime::FunctionId id, int num_arguments); | 193 void CallRuntime(Runtime::FunctionId id, int num_arguments); |
192 | 194 |
193 // Tail call of a runtime routine (jump). | 195 // Tail call of a runtime routine (jump). |
194 // Like JumpToBuiltin, but also takes care of passing the number | 196 // Like JumpToBuiltin, but also takes care of passing the number |
195 // of arguments. | 197 // of arguments. |
196 void TailCallRuntime(const ExternalReference& ext, int num_arguments); | 198 void TailCallRuntime(const ExternalReference& ext, int num_arguments); |
197 | 199 |
198 // Jump to the builtin routine. | 200 // Jump to the builtin routine. |
199 void JumpToBuiltin(const ExternalReference& ext); | 201 void JumpToBuiltin(const ExternalReference& ext); |
200 | 202 |
| 203 |
| 204 // --------------------------------------------------------------------------- |
| 205 // Utilities |
| 206 |
201 void Ret(); | 207 void Ret(); |
202 | 208 |
203 struct Unresolved { | 209 struct Unresolved { |
204 int pc; | 210 int pc; |
205 uint32_t flags; // see Bootstrapper::FixupFlags decoders/encoders. | 211 uint32_t flags; // see Bootstrapper::FixupFlags decoders/encoders. |
206 const char* name; | 212 const char* name; |
207 }; | 213 }; |
208 List<Unresolved>* unresolved() { return &unresolved_; } | 214 List<Unresolved>* unresolved() { return &unresolved_; } |
209 | 215 |
210 | 216 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 Register index, | 293 Register index, |
288 ScaleFactor scale, | 294 ScaleFactor scale, |
289 int offset) { | 295 int offset) { |
290 return Operand(object, index, scale, offset - kHeapObjectTag); | 296 return Operand(object, index, scale, offset - kHeapObjectTag); |
291 } | 297 } |
292 | 298 |
293 | 299 |
294 } } // namespace v8::internal | 300 } } // namespace v8::internal |
295 | 301 |
296 #endif // V8_MACRO_ASSEMBLER_IA32_H_ | 302 #endif // V8_MACRO_ASSEMBLER_IA32_H_ |
OLD | NEW |