diff options
author | Shih-wei Liao <sliao@google.com> | 2011-06-15 12:38:29 -0700 |
---|---|---|
committer | Shih-wei Liao <sliao@google.com> | 2011-06-15 12:38:29 -0700 |
commit | b460d4ba2d88c13480c2a6a8495de9d07a2c9f66 (patch) | |
tree | d23c75f9822883e4e67805ca729ba339f13b2ffa /lib/CodeGen/MachineCSE.cpp | |
parent | ca65f4e8b7d5566d70a99273a4baabf4dbf08c05 (diff) | |
download | external_llvm-b460d4ba2d88c13480c2a6a8495de9d07a2c9f66.zip external_llvm-b460d4ba2d88c13480c2a6a8495de9d07a2c9f66.tar.gz external_llvm-b460d4ba2d88c13480c2a6a8495de9d07a2c9f66.tar.bz2 |
Fix the wrong encoding of vmov.32's immed8 value in LLVM's ARMInstrVFP.td.
Taking Renderscript Balls as example,
fc: eeb00a03 vmov.f32 s0, #3
120: edd00a02 vldr s1, [r0, #8]
128: ee600a80 vmul.f32 s1, s1, s0
VFPexpand in ARM's hardware will expand #3 above to 0x4e180000. This corresponds
to floating point value of 2.375. However, in the original Balls code it is 6.0.
As a result, Balls got smaller recently.
Note that 6.0 in F32 is 0x40c00000 and 6.0 in F64 is 0x4018000000000000! This leads
to how I fixed the bug.
Change-Id: I9a8e71771884dc27d5b9392abe7dfa541b45f357
Diffstat (limited to 'lib/CodeGen/MachineCSE.cpp')
0 files changed, 0 insertions, 0 deletions