OSDN Git Service

Update load/store utilities for 64-bit backends
authorbuzbee <buzbee@google.com>
Sat, 19 Apr 2014 20:32:20 +0000 (13:32 -0700)
committerbuzbee <buzbee@google.com>
Tue, 22 Apr 2014 18:46:10 +0000 (11:46 -0700)
commit695d13a82d6dd801aaa57a22a9d4b3f6db0d0fdb
tree0dbee030a8c43ccc23d9efc0c80efa2d941d1ff6
parent86e1b5e7e2bca99dd2092eab8ced977d97830873
Update load/store utilities for 64-bit backends

This CL replaces the typical use of LoadWord/StoreWord
utilities (which, in practice, were 32-bit load/store) in
favor of a new set that make the size explicit.  We now have:

   LoadWordDisp/StoreWordDisp:
    32 or 64 depending on target.  Load or store the natural
    word size.  Expect this to be used infrequently - generally
    when we know we're dealing with a native pointer or flushed
    register not holding a Dalvik value (Dalvik values will flush
    to home location sizes based on Dalvik, rather than the target).

   Load32Disp/Store32Disp:
     Load or store 32 bits, regardless of target.

   Load64Disp/Store64Disp:
     Load or store 64 bits, regardless of target.

   LoadRefDisp:
     Load a 32-bit compressed reference, and expand it to the
     natural word size in the target register.

   StoreRefDisp:
     Compress a reference held in a register of the natural word
     size and store it as a 32-bit compressed reference.

Change-Id: I50fcbc8684476abd9527777ee7c152c61ba41c6f
21 files changed:
compiler/dex/compiler_enums.h
compiler/dex/quick/arm/call_arm.cc
compiler/dex/quick/arm/int_arm.cc
compiler/dex/quick/arm/target_arm.cc
compiler/dex/quick/arm/utility_arm.cc
compiler/dex/quick/codegen_util.cc
compiler/dex/quick/dex_file_method_inliner.cc
compiler/dex/quick/gen_common.cc
compiler/dex/quick/gen_invoke.cc
compiler/dex/quick/gen_loadstore.cc
compiler/dex/quick/mips/call_mips.cc
compiler/dex/quick/mips/int_mips.cc
compiler/dex/quick/mips/target_mips.cc
compiler/dex/quick/mips/utility_mips.cc
compiler/dex/quick/mir_to_lir.cc
compiler/dex/quick/mir_to_lir.h
compiler/dex/quick/x86/call_x86.cc
compiler/dex/quick/x86/fp_x86.cc
compiler/dex/quick/x86/int_x86.cc
compiler/dex/quick/x86/target_x86.cc
compiler/dex/quick/x86/utility_x86.cc