projects
/
sdk
/
emulator
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
692f737
)
target-xtensa: fetch 3rd opcode byte only when needed
author
Max Filippov
<jcmvbkbc@gmail.com>
Sat, 14 Jan 2012 09:29:29 +0000
(13:29 +0400)
committer
Max Filippov
<jcmvbkbc@gmail.com>
Fri, 17 Feb 2012 21:25:28 +0000
(
01:25
+0400)
According to ISA, 3.5.4, third opcode byte should not be fetched for
2-byte instructions.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
target-xtensa/translate.c
patch
|
blob
|
history
diff --git
a/target-xtensa/translate.c
b/target-xtensa/translate.c
index
c81450d
..
6a0177f
100644
(file)
--- a/
target-xtensa/translate.c
+++ b/
target-xtensa/translate.c
@@
-749,7
+749,7
@@
static void disas_xtensa_insn(DisasContext *dc)
uint8_t b0 = ldub_code(dc->pc);
uint8_t b1 = ldub_code(dc->pc + 1);
- uint8_t b2 =
ldub_code(dc->pc + 2)
;
+ uint8_t b2 =
0
;
static const uint32_t B4CONST[] = {
0xffffffff, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 16, 32, 64, 128, 256
@@
-764,6
+764,7
@@
static void disas_xtensa_insn(DisasContext *dc)
HAS_OPTION(XTENSA_OPTION_CODE_DENSITY);
} else {
dc->next_pc = dc->pc + 3;
+ b2 = ldub_code(dc->pc + 2);
}
switch (OP0) {