Revision 95ff895f target-ppc/op_helper.c
b/target-ppc/op_helper.c | ||
---|---|---|
1828 | 1828 |
/* Embedded PowerPC specific helpers */ |
1829 | 1829 |
|
1830 | 1830 |
/* XXX: to be improved to check access rights when in user-mode */ |
1831 |
uint32_t helper_load_dcr (uint32_t dcrn)
|
|
1831 |
target_ulong helper_load_dcr (target_ulong dcrn)
|
|
1832 | 1832 |
{ |
1833 | 1833 |
uint32_t val = 0; |
1834 | 1834 |
|
... | ... | |
1836 | 1836 |
qemu_log("No DCR environment\n"); |
1837 | 1837 |
helper_raise_exception_err(POWERPC_EXCP_PROGRAM, |
1838 | 1838 |
POWERPC_EXCP_INVAL | POWERPC_EXCP_INVAL_INVAL); |
1839 |
} else if (unlikely(ppc_dcr_read(env->dcr_env, dcrn, &val) != 0)) { |
|
1840 |
qemu_log("DCR read error %d %03x\n", dcrn, dcrn);
|
|
1839 |
} else if (unlikely(ppc_dcr_read(env->dcr_env, (uint32_t)dcrn, &val) != 0)) {
|
|
1840 |
qemu_log("DCR read error %d %03x\n", (uint32_t)dcrn, (uint32_t)dcrn);
|
|
1841 | 1841 |
helper_raise_exception_err(POWERPC_EXCP_PROGRAM, |
1842 | 1842 |
POWERPC_EXCP_INVAL | POWERPC_EXCP_PRIV_REG); |
1843 | 1843 |
} |
1844 | 1844 |
return val; |
1845 | 1845 |
} |
1846 | 1846 |
|
1847 |
void helper_store_dcr (uint32_t dcrn, uint32_t val)
|
|
1847 |
void helper_store_dcr (target_ulong dcrn, target_ulong val)
|
|
1848 | 1848 |
{ |
1849 | 1849 |
if (unlikely(env->dcr_env == NULL)) { |
1850 | 1850 |
qemu_log("No DCR environment\n"); |
1851 | 1851 |
helper_raise_exception_err(POWERPC_EXCP_PROGRAM, |
1852 | 1852 |
POWERPC_EXCP_INVAL | POWERPC_EXCP_INVAL_INVAL); |
1853 |
} else if (unlikely(ppc_dcr_write(env->dcr_env, dcrn, val) != 0)) {
|
|
1854 |
qemu_log("DCR write error %d %03x\n", dcrn, dcrn);
|
|
1853 |
} else if (unlikely(ppc_dcr_write(env->dcr_env, (uint32_t)dcrn, (uint32_t)val) != 0)) {
|
|
1854 |
qemu_log("DCR write error %d %03x\n", (uint32_t)dcrn, (uint32_t)dcrn);
|
|
1855 | 1855 |
helper_raise_exception_err(POWERPC_EXCP_PROGRAM, |
1856 | 1856 |
POWERPC_EXCP_INVAL | POWERPC_EXCP_PRIV_REG); |
1857 | 1857 |
} |
Also available in: Unified diff