diff options
author | Vladimir Marko <vmarko@google.com> | 2015-04-22 11:51:52 +0100 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2015-04-22 13:20:21 +0100 |
commit | fac10700fd99516e8a14f751fe35553021ce6982 (patch) | |
tree | 38030555c6644ee7207daafad81563c34ad3c208 /compiler/dex/quick/mir_to_lir.h | |
parent | f888d5d6584efb66ecd9eed94879679a65712336 (diff) | |
download | art-fac10700fd99516e8a14f751fe35553021ce6982.zip art-fac10700fd99516e8a14f751fe35553021ce6982.tar.gz art-fac10700fd99516e8a14f751fe35553021ce6982.tar.bz2 |
Quick: Remove broken Mir2Lir::LocToRegClass().
Its use in intrinsics has been bogus. In all other instances
it's been used under the assumption that the inferred type
matches the return type of associated calls. However, if the
type inference identifies a type mismatch, the assumption
doesn't hold and there isn't necessarily a valid value that
the function could reasonably return.
Bug: 19918641
Change-Id: I050934e6f9eb00427d0b888ee29ae9eeb509bb3f
Diffstat (limited to 'compiler/dex/quick/mir_to_lir.h')
-rw-r--r-- | compiler/dex/quick/mir_to_lir.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/dex/quick/mir_to_lir.h b/compiler/dex/quick/mir_to_lir.h index db59714..f9efe37 100644 --- a/compiler/dex/quick/mir_to_lir.h +++ b/compiler/dex/quick/mir_to_lir.h @@ -634,7 +634,6 @@ class Mir2Lir { } RegisterClass ShortyToRegClass(char shorty_type); - RegisterClass LocToRegClass(RegLocation loc); int ComputeFrameSize(); void Materialize(); virtual CompiledMethod* GetCompiledMethod(); @@ -846,7 +845,8 @@ class Mir2Lir { RegLocation rl_src, int lit); virtual void GenArithOpLong(Instruction::Code opcode, RegLocation rl_dest, RegLocation rl_src1, RegLocation rl_src2, int flags); - void GenConversionCall(QuickEntrypointEnum trampoline, RegLocation rl_dest, RegLocation rl_src); + void GenConversionCall(QuickEntrypointEnum trampoline, RegLocation rl_dest, RegLocation rl_src, + RegisterClass return_reg_class); void GenSuspendTest(int opt_flags); void GenSuspendTestAndBranch(int opt_flags, LIR* target); @@ -954,7 +954,7 @@ class Mir2Lir { virtual bool GenInlinedIndexOf(CallInfo* info, bool zero_based); bool GenInlinedStringCompareTo(CallInfo* info); virtual bool GenInlinedCurrentThread(CallInfo* info); - bool GenInlinedUnsafeGet(CallInfo* info, bool is_long, bool is_volatile); + bool GenInlinedUnsafeGet(CallInfo* info, bool is_long, bool is_object, bool is_volatile); bool GenInlinedUnsafePut(CallInfo* info, bool is_long, bool is_object, bool is_volatile, bool is_ordered); |