aboutsummaryrefslogtreecommitdiff
path: root/vm/compiler/codegen/x86/CodegenInterface.cpp
diff options
context:
space:
mode:
authorbuzbee <buzbee@google.com>2013-02-11 16:52:31 -0800
committerElliott Hughes <enh@google.com>2013-04-26 10:36:05 -0700
commit4888a4b95e2f1b2cdeb6a0ca8dd75c784eb80256 (patch)
tree31e420cf6af1c3978e9686cdc2d20f756e03a906 /vm/compiler/codegen/x86/CodegenInterface.cpp
parent3b79b5bf70941a6da52ea8c5d50b0dcdb296a99f (diff)
Fix JIT bug related to immediate doubles
Change 256211 (JIT: Performance Fix for const doubles) introduced a defect that can cause the JIT to use the wrong floating point double constant in traces in which the following conditions hold: o Two (or more) different 64-bit floating point constants are used. o The physical register holding the first constant is still live at the time the second constant is used. o The low 32 bits of the two constants are identical. In this situation, the load/copy optimization pass will incorrectly determine that the two constants are the same, delete the load of the second constant and re-use the first constant value. Note: this problem only occurs with 64-bit floating point literals. 64-bit long literals are unaffected. This CL works around the problem, and a subsequent CL will rework disambiguation of 64-bit immediates in a somewhat cleaner fashion. (cherry-pick of c1757a6deab0ca0bfd42c38612d92b2f26c41dbe.) Change-Id: I795b4b753550d2745cbbdd83ae25f4a7088990f6
Diffstat (limited to 'vm/compiler/codegen/x86/CodegenInterface.cpp')
0 files changed, 0 insertions, 0 deletions