diff options
author | Jing Yu <jingyu@google.com> | 2010-09-24 13:41:05 -0700 |
---|---|---|
committer | Jing Yu <jingyu@google.com> | 2010-09-24 13:41:05 -0700 |
commit | 14ebab14b4871d22f814fc8f3f2b1c77514315f1 (patch) | |
tree | d404680c2c4e55fc2dd512359d8d1b6dd2177d63 /binutils-2.19/opcodes | |
parent | dc5b400295740e91151a8ea7991ba7335217a6ed (diff) | |
download | toolchain_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.c | 66 |
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': |