• kmillikin@chromium.org's avatar
    Simple toplevel code generator support for short-circuited boolean OR · e82a07c0
    kmillikin@chromium.org authored
    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.
    
    Review URL: http://codereview.chromium.org/334006
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    e82a07c0
fast-codegen-x64.cc 18.3 KB