aboutsummaryrefslogtreecommitdiff
path: root/target-ppc/op_mem.h
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2004-05-21 12:59:32 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2004-05-21 12:59:32 +0000
commit9fddaa0c0cabb610947146a79b4a9a38b0a216e5 (patch)
tree0fdea73fdd2dab9437c23efa4ffbc3e22e2be036 /target-ppc/op_mem.h
parent4a0fb71e67df4774d79eb788f0d1bd7a78801e6d (diff)
PowerPC merge: real time TB and decrementer - faster and simpler exception handling (Jocelyn Mayer)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@841 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op_mem.h')
-rw-r--r--target-ppc/op_mem.h9
1 files changed, 3 insertions, 6 deletions
diff --git a/target-ppc/op_mem.h b/target-ppc/op_mem.h
index 52f55c91b2..b5d10cecb8 100644
--- a/target-ppc/op_mem.h
+++ b/target-ppc/op_mem.h
@@ -97,8 +97,7 @@ PPC_OP(glue(lswx, MEMSUFFIX))
if (T1 > 0) {
if ((PARAM(1) < PARAM(2) && (PARAM(1) + T1) > PARAM(2)) ||
(PARAM(1) < PARAM(3) && (PARAM(1) + T1) > PARAM(3))) {
- do_queue_exception_err(EXCP_PROGRAM, EXCP_INVAL | EXCP_INVAL_LSWX);
- do_process_exceptions();
+ do_raise_exception_err(EXCP_PROGRAM, EXCP_INVAL | EXCP_INVAL_LSWX);
} else {
glue(do_lsw, MEMSUFFIX)(PARAM(1));
}
@@ -138,8 +137,7 @@ PPC_LDF_OP(fs, ldfl);
PPC_OP(glue(lwarx, MEMSUFFIX))
{
if (T0 & 0x03) {
- do_queue_exception(EXCP_ALIGN);
- do_process_exceptions();
+ do_raise_exception(EXCP_ALIGN);
} else {
T1 = glue(ldl, MEMSUFFIX)((void *)T0);
regs->reserve = T0;
@@ -151,8 +149,7 @@ PPC_OP(glue(lwarx, MEMSUFFIX))
PPC_OP(glue(stwcx, MEMSUFFIX))
{
if (T0 & 0x03) {
- do_queue_exception(EXCP_ALIGN);
- do_process_exceptions();
+ do_raise_exception(EXCP_ALIGN);
} else {
if (regs->reserve != T0) {
env->crf[0] = xer_ov;