OSDN Git Service
(root)
/
qmiga
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c2c65da
)
target-mips: fix ROTR and DROTR by zero
author
Nathan Froyd
<froydnj@codesourcery.com>
Sat, 20 Feb 2010 18:24:07 +0000
(10:24 -0800)
committer
Aurelien Jarno
<aurelien@aurel32.net>
Tue, 23 Feb 2010 18:47:25 +0000
(19:47 +0100)
Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-mips/translate.c
patch
|
blob
|
history
diff --git
a/target-mips/translate.c
b/target-mips/translate.c
index
eb46b42
..
ba660ab
100644
(file)
--- a/
target-mips/translate.c
+++ b/
target-mips/translate.c
@@
-1475,6
+1475,8
@@
static void gen_shift_imm(CPUState *env, DisasContext *ctx, uint32_t opc,
tcg_gen_rotri_i32(t1, t1, uimm);
tcg_gen_ext_i32_tl(cpu_gpr[rt], t1);
tcg_temp_free_i32(t1);
+ } else {
+ tcg_gen_ext32s_tl(cpu_gpr[rt], t0);
}
opn = "rotr";
break;
@@
-1494,6
+1496,8
@@
static void gen_shift_imm(CPUState *env, DisasContext *ctx, uint32_t opc,
case OPC_DROTR:
if (uimm != 0) {
tcg_gen_rotri_tl(cpu_gpr[rt], t0, uimm);
+ } else {
+ tcg_gen_mov_tl(cpu_gpr[rt], t0);
}
opn = "drotr";
break;