v8/src/ia32
mstarzinger@chromium.org 0f348e5592 Generator objects can suspend
* src/ast.h:
* src/parser.cc: Differentiate between the different kinds of yields, in
  anticipation of boxing return values.  Parse `return' into `yield' in
  a generator.

* src/runtime.h:
* src/runtime.cc (Runtime_SuspendJSGeneratorObject): New horrible
  runtime function: saves continuation, context, and operands into the
  generator object.

* src/arm/full-codegen-arm.cc (VisitYield):
* src/ia32/full-codegen-ia32.cc (VisitYield):
* src/x64/full-codegen-x64.cc (VisitYield): Arrange to call
  SuspendJSGeneratorObject.  If the call returns the hole, we suspend.
  Otherwise we resume.

BUG=v8:2355
TEST=These codepaths are tested when the generator is first invoked, and so
are covered by mjsunit/harmony/generators-objects.js.

Review URL: https://codereview.chromium.org/13704010

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-19 14:11:23 +00:00
..
assembler-ia32-inl.h Use direct jump and call instruction for X64 when the deoptimization entries are in the code range. 2013-03-11 14:11:03 +00:00
assembler-ia32.cc Replace OS::MemCopy with OS::MemMove (just as fast but more flexible). 2013-04-16 12:30:51 +00:00
assembler-ia32.h Replace OS::MemCopy with OS::MemMove (just as fast but more flexible). 2013-04-16 12:30:51 +00:00
builtins-ia32.cc Fix OSR for nested loops. 2013-04-10 09:24:31 +00:00
code-stubs-ia32.cc Add infrastructure to automatucally generate IC miss stubs 2013-04-18 20:37:27 +00:00
code-stubs-ia32.h Make it possible to Crankshaft all kinds of stubs. 2013-04-18 09:50:46 +00:00
codegen-ia32.cc Fix Windows build 2013-04-16 13:17:47 +00:00
codegen-ia32.h Simplify and fix code aging. 2012-11-29 07:38:00 +00:00
cpu-ia32.cc Minor Native Client specific changes to files in src. 2013-04-09 15:11:45 +00:00
debug-ia32.cc Fix issue 825 (LiveEdit vs. function with no locals) for x64. 2012-05-16 21:15:24 +00:00
deoptimizer-ia32.cc Replace OS::MemCopy with OS::MemMove (just as fast but more flexible). 2013-04-16 12:30:51 +00:00
disasm-ia32.cc Added (dis-)assembler support for movmskps on ia32 and x64. 2012-12-21 13:47:08 +00:00
frames-ia32.cc Unify deoptimizer for stub failure trampoline frames. 2013-03-08 16:18:50 +00:00
frames-ia32.h Move StackHandlerConstants to platform-independent frames.h 2013-04-08 11:17:32 +00:00
full-codegen-ia32.cc Generator objects can suspend 2013-04-19 14:11:23 +00:00
ic-ia32.cc Make IC patching resilient to flushing of the original target() ic. 2013-03-05 17:38:35 +00:00
lithium-codegen-ia32.cc Simplified LCodeGen::GetNextEmittedBlock and LCodeGen::EmitGoto a bit. 2013-04-19 12:02:12 +00:00
lithium-codegen-ia32.h Simplified LCodeGen::GetNextEmittedBlock and LCodeGen::EmitGoto a bit. 2013-04-19 12:02:12 +00:00
lithium-gap-resolver-ia32.cc Improvements for x87 stack handling 2013-04-09 08:42:57 +00:00
lithium-gap-resolver-ia32.h Re-land Crankshaft-generated KeyedLoad stubs. 2012-12-18 16:25:45 +00:00
lithium-ia32.cc HArgument instructions currently require a frame. In Lithium we can ensure a frame 2013-04-18 15:44:38 +00:00
lithium-ia32.h Separate Math Lithium operations. 2013-04-11 13:27:06 +00:00
macro-assembler-ia32.cc Removed redundant instruction in VerifyX87StackDepth() 2013-04-19 07:23:09 +00:00
macro-assembler-ia32.h Bug fix, uint broke win32 build, use uint32_t 2013-04-09 09:02:28 +00:00
regexp-macro-assembler-ia32.cc remove latin-1 flag 2013-03-13 20:04:50 +00:00
regexp-macro-assembler-ia32.h Unbreak interpreted regexp. 2012-06-14 17:06:16 +00:00
simulator-ia32.cc Move backend specific files to separate directories. 2009-04-23 12:06:38 +00:00
simulator-ia32.h Implement loop for global regexps in regexp assembler. 2012-05-22 14:05:44 +00:00
stub-cache-ia32.cc Disentangle field from transition stores. 2013-04-11 09:48:03 +00:00