On 3 March 2017 at 16:28, Paolo Bonzini <pbonz...@redhat.com> wrote: > These cause compilation failures on CentOS 6 or other operating > systems with older GCCs. > > Cc: Richard Henderson <r...@twiddle.net> > Cc: Peter Maydell <peter.mayd...@linaro.org> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > Peter, please consider applying this as a build fix, because > the centos6 docker target is broken.
Applied to master, thanks. (The mailing list server seems to have eaten this mail -- I got the copy directly by being on cc but patchwork never saw it.) thanks -- PMM > target/nios2/translate.c | 36 ++++++++++++++++++------------------ > 1 file changed, 18 insertions(+), 18 deletions(-) > > diff --git a/target/nios2/translate.c b/target/nios2/translate.c > index 2d73839..cfec479 100644 > --- a/target/nios2/translate.c > +++ b/target/nios2/translate.c > @@ -48,14 +48,14 @@ > struct { \ > uint8_t op; \ > union { \ > - uint16_t imm16; \ > - int16_t imm16s; \ > - }; \ > + uint16_t u; \ > + int16_t s; \ > + } imm16; \ > uint8_t b; \ > uint8_t a; \ > } (instr) = { \ > .op = extract32((code), 0, 6), \ > - .imm16 = extract32((code), 6, 16), \ > + .imm16.u = extract32((code), 6, 16), \ > .b = extract32((code), 22, 5), \ > .a = extract32((code), 27, 5), \ > } > @@ -232,7 +232,7 @@ static void gen_ldx(DisasContext *dc, uint32_t code, > uint32_t flags) > data = tcg_temp_new(); > } > > - tcg_gen_addi_tl(addr, load_gpr(dc, instr.a), instr.imm16s); > + tcg_gen_addi_tl(addr, load_gpr(dc, instr.a), instr.imm16.s); > tcg_gen_qemu_ld_tl(data, addr, dc->mem_idx, flags); > > if (unlikely(instr.b == R_ZERO)) { > @@ -249,7 +249,7 @@ static void gen_stx(DisasContext *dc, uint32_t code, > uint32_t flags) > TCGv val = load_gpr(dc, instr.b); > > TCGv addr = tcg_temp_new(); > - tcg_gen_addi_tl(addr, load_gpr(dc, instr.a), instr.imm16s); > + tcg_gen_addi_tl(addr, load_gpr(dc, instr.a), instr.imm16.s); > tcg_gen_qemu_st_tl(val, addr, dc->mem_idx, flags); > tcg_temp_free(addr); > } > @@ -259,7 +259,7 @@ static void br(DisasContext *dc, uint32_t code, uint32_t > flags) > { > I_TYPE(instr, code); > > - gen_goto_tb(dc, 0, dc->pc + 4 + (instr.imm16s & -4)); > + gen_goto_tb(dc, 0, dc->pc + 4 + (instr.imm16.s & -4)); > dc->is_jmp = DISAS_TB_JUMP; > } > > @@ -271,7 +271,7 @@ static void gen_bxx(DisasContext *dc, uint32_t code, > uint32_t flags) > tcg_gen_brcond_tl(flags, dc->cpu_R[instr.a], dc->cpu_R[instr.b], l1); > gen_goto_tb(dc, 0, dc->pc + 4); > gen_set_label(l1); > - gen_goto_tb(dc, 1, dc->pc + 4 + (instr.imm16s & -4)); > + gen_goto_tb(dc, 1, dc->pc + 4 + (instr.imm16.s & -4)); > dc->is_jmp = DISAS_TB_JUMP; > } > > @@ -284,8 +284,8 @@ static void (fname)(DisasContext *dc, uint32_t code, > uint32_t flags) \ > (op3)); > \ > } > > -gen_i_cmpxx(gen_cmpxxsi, instr.imm16s) > -gen_i_cmpxx(gen_cmpxxui, instr.imm16) > +gen_i_cmpxx(gen_cmpxxsi, instr.imm16.s) > +gen_i_cmpxx(gen_cmpxxui, instr.imm16.u) > > /* Math/logic instructions */ > #define gen_i_math_logic(fname, insn, resimm, op3) \ > @@ -302,16 +302,16 @@ static void (fname)(DisasContext *dc, uint32_t code, > uint32_t flags) \ > } \ > } > > -gen_i_math_logic(addi, addi, 1, instr.imm16s) > -gen_i_math_logic(muli, muli, 0, instr.imm16s) > +gen_i_math_logic(addi, addi, 1, instr.imm16.s) > +gen_i_math_logic(muli, muli, 0, instr.imm16.s) > > -gen_i_math_logic(andi, andi, 0, instr.imm16) > -gen_i_math_logic(ori, ori, 1, instr.imm16) > -gen_i_math_logic(xori, xori, 1, instr.imm16) > +gen_i_math_logic(andi, andi, 0, instr.imm16.u) > +gen_i_math_logic(ori, ori, 1, instr.imm16.u) > +gen_i_math_logic(xori, xori, 1, instr.imm16.u) > > -gen_i_math_logic(andhi, andi, 0, instr.imm16 << 16) > -gen_i_math_logic(orhi , ori, 1, instr.imm16 << 16) > -gen_i_math_logic(xorhi, xori, 1, instr.imm16 << 16) > +gen_i_math_logic(andhi, andi, 0, instr.imm16.u << 16) > +gen_i_math_logic(orhi , ori, 1, instr.imm16.u << 16) > +gen_i_math_logic(xorhi, xori, 1, instr.imm16.u << 16) > > /* Prototype only, defined below */ > static void handle_r_type_instr(DisasContext *dc, uint32_t code, > -- > 1.8.3.1 >