Reviewers: William Hesse, fschneider,

Description:
Simple toplevel code generator support for short-circuited boolean OR
in a non-test (ie, value or effect) context.  (It is implicitly not in
a test context because the code generator does not support expressions
in a test context yet.)

Compilation is essentially the same as in the optimized code
generator.  The expression (e0 || e1) is compiled as if it were
(let (temp = e0) temp ? temp : e1).

On ia32 and x64 a single shared ToBoolean stub is used to convert a
value to a flag.  The inlined checks assumed by the stub are reordered
to compare to undefined (the common case in toplevel code?) first.  On
ARM a call to the runtime is used.  In the interest of code size no
checks are yet inlined on ARM.


Please review this at http://codereview.chromium.org/334006

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
   M     src/arm/fast-codegen-arm.cc
   M     src/compiler.cc
   M     src/fast-codegen.cc
   M     src/ia32/codegen-ia32.h
   M     src/ia32/codegen-ia32.cc
   M     src/ia32/fast-codegen-ia32.cc
   M     src/x64/codegen-x64.h
   M     src/x64/codegen-x64.cc
   M     src/x64/fast-codegen-x64.cc



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to