summaryrefslogtreecommitdiffstats
path: root/binutils-2.19/opcodes
diff options
context:
space:
mode:
authorJing Yu <jingyu@google.com>2010-09-24 13:41:05 -0700
committerJing Yu <jingyu@google.com>2010-09-24 13:41:05 -0700
commit14ebab14b4871d22f814fc8f3f2b1c77514315f1 (patch)
treed404680c2c4e55fc2dd512359d8d1b6dd2177d63 /binutils-2.19/opcodes
parentdc5b400295740e91151a8ea7991ba7335217a6ed (diff)
downloadtoolchain_binutils-14ebab14b4871d22f814fc8f3f2b1c77514315f1.tar.gz
toolchain_binutils-14ebab14b4871d22f814fc8f3f2b1c77514315f1.tar.bz2
toolchain_binutils-14ebab14b4871d22f814fc8f3f2b1c77514315f1.zip
A few gold and assembler patches.
See binutils-2.19/README.android for details. Change-Id: I8069c5ed23a9c0e949e1635e76e4c5704252d9c2
Diffstat (limited to 'binutils-2.19/opcodes')
-rw-r--r--binutils-2.19/opcodes/arm-dis.c66
1 files changed, 50 insertions, 16 deletions
diff --git a/binutils-2.19/opcodes/arm-dis.c b/binutils-2.19/opcodes/arm-dis.c
index 155e495b..95ba8222 100644
--- a/binutils-2.19/opcodes/arm-dis.c
+++ b/binutils-2.19/opcodes/arm-dis.c
@@ -2906,15 +2906,32 @@ print_insn_arm (bfd_vma pc, struct disassemble_info *info, long given)
break;
case 'U':
- switch (given & 0xf)
+ if ((given & 0xf0) == 0x60)
{
- case 0xf: func(stream, "sy"); break;
- case 0x7: func(stream, "un"); break;
- case 0xe: func(stream, "st"); break;
- case 0x6: func(stream, "unst"); break;
- default:
- func(stream, "#%d", (int)given & 0xf);
- break;
+ switch (given & 0xf)
+ {
+ case 0xf: func (stream, "sy"); break;
+ default:
+ func (stream, "#%d", (int) given & 0xf);
+ break;
+ }
+ }
+ else
+ {
+ switch (given & 0xf)
+ {
+ case 0xf: func (stream, "sy"); break;
+ case 0x7: func (stream, "un"); break;
+ case 0xe: func (stream, "st"); break;
+ case 0x6: func (stream, "unst"); break;
+ case 0xb: func (stream, "ish"); break;
+ case 0xa: func (stream, "ishst"); break;
+ case 0x3: func (stream, "osh"); break;
+ case 0x2: func (stream, "oshst"); break;
+ default:
+ func (stream, "#%d", (int) given & 0xf);
+ break;
+ }
}
break;
@@ -3663,16 +3680,33 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given)
break;
case 'U':
- switch (given & 0xf)
+ if ((given & 0xf0) == 0x60)
{
- case 0xf: func(stream, "sy"); break;
- case 0x7: func(stream, "un"); break;
- case 0xe: func(stream, "st"); break;
- case 0x6: func(stream, "unst"); break;
- default:
- func(stream, "#%d", (int)given & 0xf);
- break;
+ switch (given & 0xf)
+ {
+ case 0xf: func (stream, "sy"); break;
+ default:
+ func (stream, "#%d", (int) given & 0xf);
+ break;
+ }
}
+ else
+ {
+ switch (given & 0xf)
+ {
+ case 0xf: func (stream, "sy"); break;
+ case 0x7: func (stream, "un"); break;
+ case 0xe: func (stream, "st"); break;
+ case 0x6: func (stream, "unst"); break;
+ case 0xb: func (stream, "ish"); break;
+ case 0xa: func (stream, "ishst"); break;
+ case 0x3: func (stream, "osh"); break;
+ case 0x2: func (stream, "oshst"); break;
+ default:
+ func (stream, "#%d", (int) given & 0xf);
+ break;
+ }
+ }
break;
case 'C':