Message ID | 1432134765-7680-2-git-send-email-yongbok.kim@imgtec.com |
---|---|
State | New |
Headers | show |
On 05/20/2015 08:12 AM, Yongbok Kim wrote: > diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c > index 73a8e45..58f02cf 100644 > --- a/target-mips/op_helper.c > +++ b/target-mips/op_helper.c > @@ -2215,6 +2215,13 @@ void mips_cpu_do_unaligned_access(CPUState *cs, vaddr addr, > int error_code = 0; > int excp; > > + if (env->insn_flags & ISA_MIPS32R6) { > + /* Release 6 provides support for misaligned memory access for > + * all ordinary memory reference instructions > + * */ > + return; > + } This should be done instead with MO_UNALN, at translate time. See target-ppc, DisasContext, default_tcg_memop_mask. r~
On 20/05/2015 18:09, Richard Henderson wrote: > On 05/20/2015 08:12 AM, Yongbok Kim wrote: >> diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c >> index 73a8e45..58f02cf 100644 >> --- a/target-mips/op_helper.c >> +++ b/target-mips/op_helper.c >> @@ -2215,6 +2215,13 @@ void mips_cpu_do_unaligned_access(CPUState *cs, vaddr addr, >> int error_code = 0; >> int excp; >> >> + if (env->insn_flags & ISA_MIPS32R6) { >> + /* Release 6 provides support for misaligned memory access for >> + * all ordinary memory reference instructions >> + * */ >> + return; >> + } > > This should be done instead with MO_UNALN, at translate time. > See target-ppc, DisasContext, default_tcg_memop_mask. > > > r~ > Fair enough. Actually I considered to pass the information but didn't bother as this way is so simple. Regards, Yongbok
On 05/21/2015 02:47 AM, Yongbok Kim wrote: > Fair enough. Actually I considered to pass the information but didn't > bother as this way is so simple. If you ever quit relying on a separate heck for atomics, which you probably should, this would be incorrect. r~
diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c index 73a8e45..58f02cf 100644 --- a/target-mips/op_helper.c +++ b/target-mips/op_helper.c @@ -2215,6 +2215,13 @@ void mips_cpu_do_unaligned_access(CPUState *cs, vaddr addr, int error_code = 0; int excp; + if (env->insn_flags & ISA_MIPS32R6) { + /* Release 6 provides support for misaligned memory access for + * all ordinary memory reference instructions + * */ + return; + } + env->CP0_BadVAddr = addr; if (access_type == MMU_DATA_STORE) { diff --git a/target-mips/translate_init.c b/target-mips/translate_init.c index 85a65e7..ec54fef 100644 --- a/target-mips/translate_init.c +++ b/target-mips/translate_init.c @@ -607,7 +607,7 @@ static const mips_def_t mips_defs[] = }, { /* A generic CPU supporting MIPS64 Release 6 ISA. - FIXME: Support IEEE 754-2008 FP and misaligned memory accesses. + FIXME: Support IEEE 754-2008 FP. Eventually this should be replaced by a real CPU model. */ .name = "MIPS64R6-generic", .CP0_PRid = 0x00010000,