Revision 9fddaa0c target-ppc/op_mem.h

b/target-ppc/op_mem.h
97 97
    if (T1 > 0) {
98 98
        if ((PARAM(1) < PARAM(2) && (PARAM(1) + T1) > PARAM(2)) ||
99 99
            (PARAM(1) < PARAM(3) && (PARAM(1) + T1) > PARAM(3))) {
100
            do_queue_exception_err(EXCP_PROGRAM, EXCP_INVAL | EXCP_INVAL_LSWX);
101
            do_process_exceptions();
100
            do_raise_exception_err(EXCP_PROGRAM, EXCP_INVAL | EXCP_INVAL_LSWX);
102 101
        } else {
103 102
            glue(do_lsw, MEMSUFFIX)(PARAM(1));
104 103
        }
......
138 137
PPC_OP(glue(lwarx, MEMSUFFIX))
139 138
{
140 139
    if (T0 & 0x03) {
141
        do_queue_exception(EXCP_ALIGN);
142
        do_process_exceptions();
140
        do_raise_exception(EXCP_ALIGN);
143 141
    } else {
144 142
       T1 = glue(ldl, MEMSUFFIX)((void *)T0);
145 143
       regs->reserve = T0;
......
151 149
PPC_OP(glue(stwcx, MEMSUFFIX))
152 150
{
153 151
    if (T0 & 0x03) {
154
        do_queue_exception(EXCP_ALIGN);
155
        do_process_exceptions();
152
        do_raise_exception(EXCP_ALIGN);
156 153
    } else {
157 154
        if (regs->reserve != T0) {
158 155
            env->crf[0] = xer_ov;

Also available in: Unified diff