diff options
author | Jon Medhurst <tixy@yxit.co.uk> | 2011-04-12 02:45:22 -0400 |
---|---|---|
committer | Nicolas Pitre <nicolas.pitre@linaro.org> | 2011-04-28 23:40:57 -0400 |
commit | 0e384ed164bdc2ad832270e81dbd14a17c143e78 (patch) | |
tree | fe4b9460c9ff13c3c1e8fa2b3003971b0046f81e /arch/arm | |
parent | 81ff5720b9561b48e3dc640ca15799ba3919f5a6 (diff) |
ARM: kprobes: Add emulation of RBIT instruction
The v6T2 RBIT instruction was accidentally being emulated correctly,
this patch adds correct decoding for the instruction.
Signed-off-by: Jon Medhurst <tixy@yxit.co.uk>
Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/kernel/kprobes-decode.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/kernel/kprobes-decode.c b/arch/arm/kernel/kprobes-decode.c index a37745f2abba..b6bbc0b5ecd6 100644 --- a/arch/arm/kernel/kprobes-decode.c +++ b/arch/arm/kernel/kprobes-decode.c | |||
@@ -1320,9 +1320,10 @@ space_cccc_0110__1(kprobe_opcode_t insn, struct arch_specific_insn *asi) | |||
1320 | 1320 | ||
1321 | /* REV : cccc 0110 1011 xxxx xxxx xxxx 0011 xxxx */ | 1321 | /* REV : cccc 0110 1011 xxxx xxxx xxxx 0011 xxxx */ |
1322 | /* REV16 : cccc 0110 1011 xxxx xxxx xxxx 1011 xxxx */ | 1322 | /* REV16 : cccc 0110 1011 xxxx xxxx xxxx 1011 xxxx */ |
1323 | /* RBIT : cccc 0110 1111 xxxx xxxx xxxx 0011 xxxx */ | ||
1323 | /* REVSH : cccc 0110 1111 xxxx xxxx xxxx 1011 xxxx */ | 1324 | /* REVSH : cccc 0110 1111 xxxx xxxx xxxx 1011 xxxx */ |
1324 | if ((insn & 0x0ff00070) == 0x06b00030 || | 1325 | if ((insn & 0x0ff00070) == 0x06b00030 || |
1325 | (insn & 0x0ff000f0) == 0x06f000b0) | 1326 | (insn & 0x0ff00070) == 0x06f00030) |
1326 | return prep_emulate_rd12rm0(insn, asi); | 1327 | return prep_emulate_rd12rm0(insn, asi); |
1327 | 1328 | ||
1328 | /* SADD16 : cccc 0110 0001 xxxx xxxx xxxx 0001 xxxx :GE */ | 1329 | /* SADD16 : cccc 0110 0001 xxxx xxxx xxxx 0001 xxxx :GE */ |