Revision e18231a3 target-sparc/op_helper.c
b/target-sparc/op_helper.c | ||
---|---|---|
950 | 950 |
break; |
951 | 951 |
case 8: /* User code access, XXX */ |
952 | 952 |
default: |
953 |
do_unassigned_access(addr, 0, 0, asi); |
|
953 |
do_unassigned_access(addr, 0, 0, asi, size);
|
|
954 | 954 |
ret = 0; |
955 | 955 |
break; |
956 | 956 |
} |
... | ... | |
1284 | 1284 |
case 8: /* User code access, XXX */ |
1285 | 1285 |
case 9: /* Supervisor code access, XXX */ |
1286 | 1286 |
default: |
1287 |
do_unassigned_access(addr, 1, 0, asi); |
|
1287 |
do_unassigned_access(addr, 1, 0, asi, size);
|
|
1288 | 1288 |
break; |
1289 | 1289 |
} |
1290 | 1290 |
#ifdef DEBUG_ASI |
... | ... | |
1464 | 1464 |
case 0x8a: // Primary no-fault LE, RO |
1465 | 1465 |
case 0x8b: // Secondary no-fault LE, RO |
1466 | 1466 |
default: |
1467 |
do_unassigned_access(addr, 1, 0, 1); |
|
1467 |
do_unassigned_access(addr, 1, 0, 1, size);
|
|
1468 | 1468 |
return; |
1469 | 1469 |
} |
1470 | 1470 |
} |
... | ... | |
1675 | 1675 |
case 0x5f: // D-MMU demap, WO |
1676 | 1676 |
case 0x77: // Interrupt vector, WO |
1677 | 1677 |
default: |
1678 |
do_unassigned_access(addr, 0, 0, 1); |
|
1678 |
do_unassigned_access(addr, 0, 0, 1, size);
|
|
1679 | 1679 |
ret = 0; |
1680 | 1680 |
break; |
1681 | 1681 |
} |
... | ... | |
2082 | 2082 |
case 0x8a: // Primary no-fault LE, RO |
2083 | 2083 |
case 0x8b: // Secondary no-fault LE, RO |
2084 | 2084 |
default: |
2085 |
do_unassigned_access(addr, 1, 0, 1); |
|
2085 |
do_unassigned_access(addr, 1, 0, 1, size);
|
|
2086 | 2086 |
return; |
2087 | 2087 |
} |
2088 | 2088 |
} |
... | ... | |
3025 | 3025 |
|
3026 | 3026 |
#ifndef TARGET_SPARC64 |
3027 | 3027 |
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, |
3028 |
int is_asi) |
|
3028 |
int is_asi, int size)
|
|
3029 | 3029 |
{ |
3030 | 3030 |
CPUState *saved_env; |
3031 | 3031 |
|
... | ... | |
3035 | 3035 |
env = cpu_single_env; |
3036 | 3036 |
#ifdef DEBUG_UNASSIGNED |
3037 | 3037 |
if (is_asi) |
3038 |
printf("Unassigned mem %s access to " TARGET_FMT_plx |
|
3038 |
printf("Unassigned mem %s access of %d byte%s to " TARGET_FMT_plx
|
|
3039 | 3039 |
" asi 0x%02x from " TARGET_FMT_lx "\n", |
3040 |
is_exec ? "exec" : is_write ? "write" : "read", addr, is_asi,
|
|
3041 |
env->pc); |
|
3040 |
is_exec ? "exec" : is_write ? "write" : "read", size,
|
|
3041 |
size == 1 ? "" : "s", addr, is_asi, env->pc);
|
|
3042 | 3042 |
else |
3043 |
printf("Unassigned mem %s access to " TARGET_FMT_plx " from " |
|
3044 |
TARGET_FMT_lx "\n", |
|
3045 |
is_exec ? "exec" : is_write ? "write" : "read", addr, env->pc); |
|
3043 |
printf("Unassigned mem %s access of %d byte%s to " TARGET_FMT_plx |
|
3044 |
" from " TARGET_FMT_lx "\n", |
|
3045 |
is_exec ? "exec" : is_write ? "write" : "read", size, |
|
3046 |
size == 1 ? "" : "s", addr, env->pc); |
|
3046 | 3047 |
#endif |
3047 | 3048 |
if (env->mmuregs[3]) /* Fault status register */ |
3048 | 3049 |
env->mmuregs[3] = 1; /* overflow (not read before another fault) */ |
... | ... | |
3066 | 3067 |
} |
3067 | 3068 |
#else |
3068 | 3069 |
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, |
3069 |
int is_asi) |
|
3070 |
int is_asi, int size)
|
|
3070 | 3071 |
{ |
3071 | 3072 |
#ifdef DEBUG_UNASSIGNED |
3072 | 3073 |
CPUState *saved_env; |
Also available in: Unified diff