Revision 0e2fa9ca
b/target-sparc/op_helper.c | ||
---|---|---|
3164 | 3164 |
} |
3165 | 3165 |
|
3166 | 3166 |
return; |
3167 |
case 0x70: // Block load primary, user privilege |
|
3168 |
case 0x71: // Block load secondary, user privilege |
|
3169 |
if (rd & 7) { |
|
3170 |
raise_exception(TT_ILL_INSN); |
|
3171 |
return; |
|
3172 |
} |
|
3173 |
helper_check_align(addr, 0x3f); |
|
3174 |
for (i = 0; i < 16; i++) { |
|
3175 |
*(uint32_t *)&env->fpr[rd++] = helper_ld_asi(addr, asi & 0x1f, 4, |
|
3176 |
0); |
|
3177 |
addr += 4; |
|
3178 |
} |
|
3179 |
|
|
3180 |
return; |
|
3167 | 3181 |
default: |
3168 | 3182 |
break; |
3169 | 3183 |
} |
... | ... | |
3210 | 3224 |
} |
3211 | 3225 |
|
3212 | 3226 |
return; |
3227 |
case 0x70: // Block store primary, user privilege |
|
3228 |
case 0x71: // Block store secondary, user privilege |
|
3229 |
if (rd & 7) { |
|
3230 |
raise_exception(TT_ILL_INSN); |
|
3231 |
return; |
|
3232 |
} |
|
3233 |
helper_check_align(addr, 0x3f); |
|
3234 |
for (i = 0; i < 16; i++) { |
|
3235 |
val = *(uint32_t *)&env->fpr[rd++]; |
|
3236 |
helper_st_asi(addr, val, asi & 0x1f, 4); |
|
3237 |
addr += 4; |
|
3238 |
} |
|
3239 |
|
|
3240 |
return; |
|
3213 | 3241 |
default: |
3214 | 3242 |
break; |
3215 | 3243 |
} |
Also available in: Unified diff