projects
/
qemu
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
bfdb362
)
sparc64 flush pending conditional evaluations before exposing cpu state
author
Igor Kovalenko
<igor.v.kovalenko@gmail.com>
Tue, 28 Jul 2009 21:32:23 +0000
(
01:32
+0400)
committer
Blue Swirl
<blauwirbel@gmail.com>
Fri, 31 Jul 2009 06:48:47 +0000
(06:48 +0000)
If translation block is interrupted by e.g. mmu exception
we need to compute conditional flags for inclusion into
saved cpu state. Otherwise after return from trap
conditional instructions would use stale psr/xcc data.
Signed-off-by: igor.v.kovalenko@gmail.com
--
Kind regards,
Igor V. Kovalenko
target-sparc/translate.c
patch
|
blob
|
history
diff --git
a/target-sparc/translate.c
b/target-sparc/translate.c
index
a372eca
..
d7894f1
100644
(file)
--- a/
target-sparc/translate.c
+++ b/
target-sparc/translate.c
@@
-4908,4
+4908,9
@@
void gen_pc_load(CPUState *env, TranslationBlock *tb,
} else {
env->npc = npc;
}
+
+ /* flush pending conditional evaluations before exposing cpu state */
+ if (CC_OP != CC_OP_FLAGS) {
+ helper_compute_psr();
+ }
}