Ignore:
Timestamp:
Mar 10, 2012, 4:33:20 PM (13 years ago)
Author:
[email protected]
Message:

LLInt should support JSVALUE64
https://bugs.webkit.org/show_bug.cgi?id=79609
<rdar://problem/10063437>

Reviewed by Gavin Barraclough and Oliver Hunt.

Ported the LLInt, which previously only worked on 32-bit, to 64-bit. This
patch moves a fair bit of code from LowLevelInterpreter32_64.asm to the common
file, LowLevelInterpreter.asm. About 1/3 of the LLInt did not have to be
specialized for value representation.

Also made some minor changes to offlineasm and the slow-paths.

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntEntrypoints.cpp:
  • llint/LLIntSlowPaths.cpp:

(LLInt):
(JSC::LLInt::llint_trace_value):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::jitCompileAndSetHeuristics):

  • llint/LLIntSlowPaths.h:

(LLInt):
(SlowPathReturnType):
(JSC::LLInt::SlowPathReturnType::SlowPathReturnType):
(JSC::LLInt::encodeResult):

  • llint/LLIntThunks.cpp:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/armv7.rb:
  • offlineasm/asm.rb:
  • offlineasm/ast.rb:
  • offlineasm/backends.rb:
  • offlineasm/instructions.rb:
  • offlineasm/parser.rb:
  • offlineasm/registers.rb:
  • offlineasm/transform.rb:
  • offlineasm/x86.rb:
  • wtf/Platform.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/offlineasm/backends.rb

    r108909 r110383  
    4949class Node
    5050    def lower(name)
    51         $activeBackend = name
    52         send("lower" + name)
     51        begin
     52            $activeBackend = name
     53            send("lower" + name)
     54        rescue => e
     55            raise "Got error #{e} at #{codeOriginString}"
     56        end
    5357    end
    5458end
     
    8892    def lower(name)
    8993        $activeBackend = name
    90         if respond_to? "lower#{name}"
     94        if respond_to? "getModifiedList#{name}"
     95            newList = send("getModifiedList#{name}")
     96            newList.each {
     97                | node |
     98                node.lower(name)
     99            }
     100        elsif respond_to? "lower#{name}"
    91101            send("lower#{name}")
    92102        else
Note: See TracChangeset for help on using the changeset viewer.