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

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

Issue 466033: Fast codegen: Working break and continue. (Closed)
Patch Set: Fixed bug in ARM PopTryHandler, merge with head. Created 11 years 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
OLDNEW
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. 1 // Copyright 2006-2009 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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 // jcc instructions (je, ja, jae, jb, jbe, je, and jz). 142 // jcc instructions (je, ja, jae, jb, jbe, je, and jz).
143 void FCmp(); 143 void FCmp();
144 144
145 // --------------------------------------------------------------------------- 145 // ---------------------------------------------------------------------------
146 // Exception handling 146 // Exception handling
147 147
148 // Push a new try handler and link into try handler chain. The return 148 // Push a new try handler and link into try handler chain. The return
149 // address must be pushed before calling this helper. 149 // address must be pushed before calling this helper.
150 void PushTryHandler(CodeLocation try_location, HandlerType type); 150 void PushTryHandler(CodeLocation try_location, HandlerType type);
151 151
152 // Unlink the stack handler on top of the stack from the try handler chain.
153 void PopTryHandler();
154
152 155
153 // --------------------------------------------------------------------------- 156 // ---------------------------------------------------------------------------
154 // Inline caching support 157 // Inline caching support
155 158
156 // Generates code that verifies that the maps of objects in the 159 // Generates code that verifies that the maps of objects in the
157 // prototype chain of object hasn't changed since the code was 160 // prototype chain of object hasn't changed since the code was
158 // generated and branches to the miss label if any map has. If 161 // generated and branches to the miss label if any map has. If
159 // necessary the function also generates code for security check 162 // necessary the function also generates code for security check
160 // in case of global object holders. The scratch and holder 163 // in case of global object holders. The scratch and holder
161 // registers are always clobbered, but the object register is only 164 // registers are always clobbered, but the object register is only
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 329
327 // Jump to a runtime routine. 330 // Jump to a runtime routine.
328 void JumpToRuntime(const ExternalReference& ext); 331 void JumpToRuntime(const ExternalReference& ext);
329 332
330 333
331 // --------------------------------------------------------------------------- 334 // ---------------------------------------------------------------------------
332 // Utilities 335 // Utilities
333 336
334 void Ret(); 337 void Ret();
335 338
339 void Drop(int element_count);
340
341 void Call(Label* target) { call(target); }
342
343 void Move(Register target, Handle<Object> value);
344
336 struct Unresolved { 345 struct Unresolved {
337 int pc; 346 int pc;
338 uint32_t flags; // see Bootstrapper::FixupFlags decoders/encoders. 347 uint32_t flags; // see Bootstrapper::FixupFlags decoders/encoders.
339 const char* name; 348 const char* name;
340 }; 349 };
341 List<Unresolved>* unresolved() { return &unresolved_; } 350 List<Unresolved>* unresolved() { return &unresolved_; }
342 351
343 Handle<Object> CodeObject() { return code_object_; } 352 Handle<Object> CodeObject() { return code_object_; }
344 353
345 354
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 } \ 478 } \
470 masm-> 479 masm->
471 #else 480 #else
472 #define ACCESS_MASM(masm) masm-> 481 #define ACCESS_MASM(masm) masm->
473 #endif 482 #endif
474 483
475 484
476 } } // namespace v8::internal 485 } } // namespace v8::internal
477 486
478 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ 487 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698