OSDN Git Service

Use paired immediates for large constants.
authorAndy McFadden <fadden@android.com>
Fri, 19 Jun 2009 23:52:19 +0000 (16:52 -0700)
committerAndy McFadden <fadden@android.com>
Sat, 20 Jun 2009 00:18:11 +0000 (17:18 -0700)
commit5162c5fbc20b7ba7791e79c640ac51b9fcd7937a
tree0e5468d39d7b9d3f790747ddc3313d68185c275a
parenta5069fb7eb2da846ff1fc2c903ebd8ce9fa3647f
Use paired immediates for large constants.

The double-to-int and double-to-long instructions were loading constants
from .word directives, which wastes space in the CPU data cache.  This
replaces a single LDR with a pair of data operations.

We don't actually use the double-to-long handler (the ARM EABI lib
does the right thing), and double-to-int is handled by VFP on newer
devices, but on older devices this may help a smidgeon.  Mostly it just
looks nicer when you don't have .words lying around.

Also picks up a change that should be in the armv7-a generated file but
got lost in all of today's various mergings (float compare tweak).
vm/mterp/armv5te/OP_DOUBLE_TO_INT.S
vm/mterp/armv5te/OP_DOUBLE_TO_LONG.S
vm/mterp/armv6t2/OP_DOUBLE_TO_INT.S
vm/mterp/armv6t2/OP_DOUBLE_TO_LONG.S
vm/mterp/out/InterpAsm-armv4t.S
vm/mterp/out/InterpAsm-armv5te-vfp.S
vm/mterp/out/InterpAsm-armv5te.S
vm/mterp/out/InterpAsm-armv7-a.S