| Submitter | Jay Foad |
|---|---|
| Date | Feb. 20, 2010, 10:45 a.m. |
| Message ID | <ee2e06e91002200245r5212756fs1aec110fa2d64934@mail.gmail.com> |
| Download | mbox | patch |
| Permalink | /patch/45915/ |
| State | New |
| Headers | show |
Comments
Thanks, applied. On 2/20/10, Jay Foad <jay.foad@gmail.com> wrote: > Use 32-bit arithmetic for the address offset calculation to fix a > build failure on 32-bit hosts. > > Signed-off-by: Jay Foad <jay.foad@gmail.com> > --- > target-sparc/translate.c | 22 +++++++++++----------- > 1 files changed, 11 insertions(+), 11 deletions(-) > > diff --git a/target-sparc/translate.c b/target-sparc/translate.c > index 7e9f0cf..b7d2a32 100644 > --- a/target-sparc/translate.c > +++ b/target-sparc/translate.c > @@ -1663,27 +1663,27 @@ static inline TCGv get_src2(unsigned int insn, TCGv def) > #ifdef TARGET_SPARC64 > static inline void gen_load_trap_state_at_tl(TCGv_ptr r_tsptr, > TCGv_ptr cpu_env) > { > - TCGv r_tl = tcg_temp_new(); > + TCGv_i32 r_tl = tcg_temp_new_i32(); > > /* load env->tl into r_tl */ > - { > - TCGv_i32 r_tl_tmp = tcg_temp_new_i32(); > - tcg_gen_ld_i32(r_tl_tmp, cpu_env, offsetof(CPUSPARCState, tl)); > - tcg_gen_ext_i32_tl(r_tl, r_tl_tmp); > - tcg_temp_free_i32(r_tl_tmp); > - } > + tcg_gen_ld_i32(r_tl, cpu_env, offsetof(CPUSPARCState, tl)); > > /* tl = [0 ... MAXTL_MASK] where MAXTL_MASK must be power of 2 */ > - tcg_gen_andi_tl(r_tl, r_tl, MAXTL_MASK); > + tcg_gen_andi_i32(r_tl, r_tl, MAXTL_MASK); > > /* calculate offset to current trap state from env->ts, reuse r_tl */ > - tcg_gen_muli_tl(r_tl, r_tl, sizeof (trap_state)); > + tcg_gen_muli_i32(r_tl, r_tl, sizeof (trap_state)); > tcg_gen_addi_ptr(r_tsptr, cpu_env, offsetof(CPUState, ts)); > > /* tsptr = env->ts[env->tl & MAXTL_MASK] */ > - tcg_gen_add_ptr(r_tsptr, r_tsptr, r_tl); > + { > + TCGv_ptr r_tl_tmp = tcg_temp_new_ptr(); > + tcg_gen_ext_i32_ptr(r_tl_tmp, r_tl); > + tcg_gen_add_ptr(r_tsptr, r_tsptr, r_tl_tmp); > + tcg_temp_free_i32(r_tl_tmp); > + } > > - tcg_temp_free(r_tl); > + tcg_temp_free_i32(r_tl); > } > #endif > > >
Patch
diff --git a/target-sparc/translate.c b/target-sparc/translate.c index 7e9f0cf..b7d2a32 100644 --- a/target-sparc/translate.c +++ b/target-sparc/translate.c @@ -1663,27 +1663,27 @@ static inline TCGv get_src2(unsigned int insn, TCGv def) #ifdef TARGET_SPARC64 static inline void gen_load_trap_state_at_tl(TCGv_ptr r_tsptr, TCGv_ptr cpu_env) { - TCGv r_tl = tcg_temp_new(); + TCGv_i32 r_tl = tcg_temp_new_i32(); /* load env->tl into r_tl */ - { - TCGv_i32 r_tl_tmp = tcg_temp_new_i32(); - tcg_gen_ld_i32(r_tl_tmp, cpu_env, offsetof(CPUSPARCState, tl)); - tcg_gen_ext_i32_tl(r_tl, r_tl_tmp); - tcg_temp_free_i32(r_tl_tmp); - } + tcg_gen_ld_i32(r_tl, cpu_env, offsetof(CPUSPARCState, tl)); /* tl = [0 ... MAXTL_MASK] where MAXTL_MASK must be power of 2 */ - tcg_gen_andi_tl(r_tl, r_tl, MAXTL_MASK); + tcg_gen_andi_i32(r_tl, r_tl, MAXTL_MASK); /* calculate offset to current trap state from env->ts, reuse r_tl */ - tcg_gen_muli_tl(r_tl, r_tl, sizeof (trap_state)); + tcg_gen_muli_i32(r_tl, r_tl, sizeof (trap_state)); tcg_gen_addi_ptr(r_tsptr, cpu_env, offsetof(CPUState, ts)); /* tsptr = env->ts[env->tl & MAXTL_MASK] */ - tcg_gen_add_ptr(r_tsptr, r_tsptr, r_tl); + { + TCGv_ptr r_tl_tmp = tcg_temp_new_ptr(); + tcg_gen_ext_i32_ptr(r_tl_tmp, r_tl); + tcg_gen_add_ptr(r_tsptr, r_tsptr, r_tl_tmp); + tcg_temp_free_i32(r_tl_tmp); + } - tcg_temp_free(r_tl); + tcg_temp_free_i32(r_tl); } #endif
Use 32-bit arithmetic for the address offset calculation to fix a build failure on 32-bit hosts. Signed-off-by: Jay Foad <jay.foad@gmail.com> --- target-sparc/translate.c | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-)