Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Side by Side Diff: src/macro-assembler-ia32.h

Issue 4035: Refactored the code for entering and leaving exit frames (calls... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 12 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698