Revision 62c5609a target-mips/op_mem.c

b/target-mips/op_mem.c
117 117
void glue(op_sc, MEMSUFFIX) (void)
118 118
{
119 119
    CALL_FROM_TB0(dump_sc);
120
    if (T0 & 0x3) {
121
        env->CP0_BadVAddr = T0;
122
        CALL_FROM_TB1(do_raise_exception, EXCP_AdES);
123
    }
120 124
    if (T0 == env->CP0_LLAddr) {
121 125
        glue(stl, MEMSUFFIX)(T0, T1);
122 126
        T0 = 1;
......
182 186
void glue(op_scd, MEMSUFFIX) (void)
183 187
{
184 188
    CALL_FROM_TB0(dump_sc);
189
    if (T0 & 0x7) {
190
        env->CP0_BadVAddr = T0;
191
        CALL_FROM_TB1(do_raise_exception, EXCP_AdES);
192
    }
185 193
    if (T0 == env->CP0_LLAddr) {
186 194
        glue(stq, MEMSUFFIX)(T0, T1);
187 195
        T0 = 1;

Also available in: Unified diff