hppa: avoid anonymous unions in designated initializers.

These cause compilation failures on CentOS 6 or other operating
systems with older GCCs.

Cc: Richard Henderson <rth@twiddle.net>
Cc: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Message-id: 1488558530-21016-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Paolo Bonzini 2017-03-03 17:28:48 +01:00 committed by Peter Maydell
parent 5febe7671f
commit eff235eb2b

View file

@ -84,14 +84,14 @@ typedef struct DisasInsn {
ExitStatus (*trans)(DisasContext *ctx, uint32_t insn, ExitStatus (*trans)(DisasContext *ctx, uint32_t insn,
const struct DisasInsn *f); const struct DisasInsn *f);
union { union {
void (*f_ttt)(TCGv, TCGv, TCGv); void (*ttt)(TCGv, TCGv, TCGv);
void (*f_weww)(TCGv_i32, TCGv_env, TCGv_i32, TCGv_i32); void (*weww)(TCGv_i32, TCGv_env, TCGv_i32, TCGv_i32);
void (*f_dedd)(TCGv_i64, TCGv_env, TCGv_i64, TCGv_i64); void (*dedd)(TCGv_i64, TCGv_env, TCGv_i64, TCGv_i64);
void (*f_wew)(TCGv_i32, TCGv_env, TCGv_i32); void (*wew)(TCGv_i32, TCGv_env, TCGv_i32);
void (*f_ded)(TCGv_i64, TCGv_env, TCGv_i64); void (*ded)(TCGv_i64, TCGv_env, TCGv_i64);
void (*f_wed)(TCGv_i32, TCGv_env, TCGv_i64); void (*wed)(TCGv_i32, TCGv_env, TCGv_i64);
void (*f_dew)(TCGv_i64, TCGv_env, TCGv_i32); void (*dew)(TCGv_i64, TCGv_env, TCGv_i32);
}; } f;
} DisasInsn; } DisasInsn;
/* global register indexes */ /* global register indexes */
@ -1934,7 +1934,7 @@ static ExitStatus trans_log(DisasContext *ctx, uint32_t insn,
} }
tcg_r1 = load_gpr(ctx, r1); tcg_r1 = load_gpr(ctx, r1);
tcg_r2 = load_gpr(ctx, r2); tcg_r2 = load_gpr(ctx, r2);
ret = do_log(ctx, rt, tcg_r1, tcg_r2, cf, di->f_ttt); ret = do_log(ctx, rt, tcg_r1, tcg_r2, cf, di->f.ttt);
return nullify_end(ctx, ret); return nullify_end(ctx, ret);
} }
@ -2111,10 +2111,10 @@ static ExitStatus trans_ds(DisasContext *ctx, uint32_t insn,
static const DisasInsn table_arith_log[] = { static const DisasInsn table_arith_log[] = {
{ 0x08000240u, 0xfc00ffffu, trans_nop }, /* or x,y,0 */ { 0x08000240u, 0xfc00ffffu, trans_nop }, /* or x,y,0 */
{ 0x08000240u, 0xffe0ffe0u, trans_copy }, /* or x,0,t */ { 0x08000240u, 0xffe0ffe0u, trans_copy }, /* or x,0,t */
{ 0x08000000u, 0xfc000fe0u, trans_log, .f_ttt = tcg_gen_andc_tl }, { 0x08000000u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_andc_tl },
{ 0x08000200u, 0xfc000fe0u, trans_log, .f_ttt = tcg_gen_and_tl }, { 0x08000200u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_and_tl },
{ 0x08000240u, 0xfc000fe0u, trans_log, .f_ttt = tcg_gen_or_tl }, { 0x08000240u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_or_tl },
{ 0x08000280u, 0xfc000fe0u, trans_log, .f_ttt = tcg_gen_xor_tl }, { 0x08000280u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_xor_tl },
{ 0x08000880u, 0xfc000fe0u, trans_cmpclr }, { 0x08000880u, 0xfc000fe0u, trans_cmpclr },
{ 0x08000380u, 0xfc000fe0u, trans_uxor }, { 0x08000380u, 0xfc000fe0u, trans_uxor },
{ 0x08000980u, 0xfc000fa0u, trans_uaddcm }, { 0x08000980u, 0xfc000fa0u, trans_uaddcm },
@ -3061,7 +3061,7 @@ static ExitStatus trans_fop_wew_0c(DisasContext *ctx, uint32_t insn,
{ {
unsigned rt = extract32(insn, 0, 5); unsigned rt = extract32(insn, 0, 5);
unsigned ra = extract32(insn, 21, 5); unsigned ra = extract32(insn, 21, 5);
return do_fop_wew(ctx, rt, ra, di->f_wew); return do_fop_wew(ctx, rt, ra, di->f.wew);
} }
static ExitStatus trans_fop_wew_0e(DisasContext *ctx, uint32_t insn, static ExitStatus trans_fop_wew_0e(DisasContext *ctx, uint32_t insn,
@ -3069,7 +3069,7 @@ static ExitStatus trans_fop_wew_0e(DisasContext *ctx, uint32_t insn,
{ {
unsigned rt = assemble_rt64(insn); unsigned rt = assemble_rt64(insn);
unsigned ra = assemble_ra64(insn); unsigned ra = assemble_ra64(insn);
return do_fop_wew(ctx, rt, ra, di->f_wew); return do_fop_wew(ctx, rt, ra, di->f.wew);
} }
static ExitStatus trans_fop_ded(DisasContext *ctx, uint32_t insn, static ExitStatus trans_fop_ded(DisasContext *ctx, uint32_t insn,
@ -3077,7 +3077,7 @@ static ExitStatus trans_fop_ded(DisasContext *ctx, uint32_t insn,
{ {
unsigned rt = extract32(insn, 0, 5); unsigned rt = extract32(insn, 0, 5);
unsigned ra = extract32(insn, 21, 5); unsigned ra = extract32(insn, 21, 5);
return do_fop_ded(ctx, rt, ra, di->f_ded); return do_fop_ded(ctx, rt, ra, di->f.ded);
} }
static ExitStatus trans_fop_wed_0c(DisasContext *ctx, uint32_t insn, static ExitStatus trans_fop_wed_0c(DisasContext *ctx, uint32_t insn,
@ -3085,7 +3085,7 @@ static ExitStatus trans_fop_wed_0c(DisasContext *ctx, uint32_t insn,
{ {
unsigned rt = extract32(insn, 0, 5); unsigned rt = extract32(insn, 0, 5);
unsigned ra = extract32(insn, 21, 5); unsigned ra = extract32(insn, 21, 5);
return do_fop_wed(ctx, rt, ra, di->f_wed); return do_fop_wed(ctx, rt, ra, di->f.wed);
} }
static ExitStatus trans_fop_wed_0e(DisasContext *ctx, uint32_t insn, static ExitStatus trans_fop_wed_0e(DisasContext *ctx, uint32_t insn,
@ -3093,7 +3093,7 @@ static ExitStatus trans_fop_wed_0e(DisasContext *ctx, uint32_t insn,
{ {
unsigned rt = assemble_rt64(insn); unsigned rt = assemble_rt64(insn);
unsigned ra = extract32(insn, 21, 5); unsigned ra = extract32(insn, 21, 5);
return do_fop_wed(ctx, rt, ra, di->f_wed); return do_fop_wed(ctx, rt, ra, di->f.wed);
} }
static ExitStatus trans_fop_dew_0c(DisasContext *ctx, uint32_t insn, static ExitStatus trans_fop_dew_0c(DisasContext *ctx, uint32_t insn,
@ -3101,7 +3101,7 @@ static ExitStatus trans_fop_dew_0c(DisasContext *ctx, uint32_t insn,
{ {
unsigned rt = extract32(insn, 0, 5); unsigned rt = extract32(insn, 0, 5);
unsigned ra = extract32(insn, 21, 5); unsigned ra = extract32(insn, 21, 5);
return do_fop_dew(ctx, rt, ra, di->f_dew); return do_fop_dew(ctx, rt, ra, di->f.dew);
} }
static ExitStatus trans_fop_dew_0e(DisasContext *ctx, uint32_t insn, static ExitStatus trans_fop_dew_0e(DisasContext *ctx, uint32_t insn,
@ -3109,7 +3109,7 @@ static ExitStatus trans_fop_dew_0e(DisasContext *ctx, uint32_t insn,
{ {
unsigned rt = extract32(insn, 0, 5); unsigned rt = extract32(insn, 0, 5);
unsigned ra = assemble_ra64(insn); unsigned ra = assemble_ra64(insn);
return do_fop_dew(ctx, rt, ra, di->f_dew); return do_fop_dew(ctx, rt, ra, di->f.dew);
} }
static ExitStatus trans_fop_weww_0c(DisasContext *ctx, uint32_t insn, static ExitStatus trans_fop_weww_0c(DisasContext *ctx, uint32_t insn,
@ -3118,7 +3118,7 @@ static ExitStatus trans_fop_weww_0c(DisasContext *ctx, uint32_t insn,
unsigned rt = extract32(insn, 0, 5); unsigned rt = extract32(insn, 0, 5);
unsigned rb = extract32(insn, 16, 5); unsigned rb = extract32(insn, 16, 5);
unsigned ra = extract32(insn, 21, 5); unsigned ra = extract32(insn, 21, 5);
return do_fop_weww(ctx, rt, ra, rb, di->f_weww); return do_fop_weww(ctx, rt, ra, rb, di->f.weww);
} }
static ExitStatus trans_fop_weww_0e(DisasContext *ctx, uint32_t insn, static ExitStatus trans_fop_weww_0e(DisasContext *ctx, uint32_t insn,
@ -3127,7 +3127,7 @@ static ExitStatus trans_fop_weww_0e(DisasContext *ctx, uint32_t insn,
unsigned rt = assemble_rt64(insn); unsigned rt = assemble_rt64(insn);
unsigned rb = assemble_rb64(insn); unsigned rb = assemble_rb64(insn);
unsigned ra = assemble_ra64(insn); unsigned ra = assemble_ra64(insn);
return do_fop_weww(ctx, rt, ra, rb, di->f_weww); return do_fop_weww(ctx, rt, ra, rb, di->f.weww);
} }
static ExitStatus trans_fop_dedd(DisasContext *ctx, uint32_t insn, static ExitStatus trans_fop_dedd(DisasContext *ctx, uint32_t insn,
@ -3136,7 +3136,7 @@ static ExitStatus trans_fop_dedd(DisasContext *ctx, uint32_t insn,
unsigned rt = extract32(insn, 0, 5); unsigned rt = extract32(insn, 0, 5);
unsigned rb = extract32(insn, 16, 5); unsigned rb = extract32(insn, 16, 5);
unsigned ra = extract32(insn, 21, 5); unsigned ra = extract32(insn, 21, 5);
return do_fop_dedd(ctx, rt, ra, rb, di->f_dedd); return do_fop_dedd(ctx, rt, ra, rb, di->f.dedd);
} }
static void gen_fcpy_s(TCGv_i32 dst, TCGv_env unused, TCGv_i32 src) static void gen_fcpy_s(TCGv_i32 dst, TCGv_env unused, TCGv_i32 src)
@ -3340,13 +3340,13 @@ static ExitStatus trans_xmpyu(DisasContext *ctx, uint32_t insn,
return nullify_end(ctx, NO_EXIT); return nullify_end(ctx, NO_EXIT);
} }
#define FOP_DED trans_fop_ded, .f_ded #define FOP_DED trans_fop_ded, .f.ded
#define FOP_DEDD trans_fop_dedd, .f_dedd #define FOP_DEDD trans_fop_dedd, .f.dedd
#define FOP_WEW trans_fop_wew_0c, .f_wew #define FOP_WEW trans_fop_wew_0c, .f.wew
#define FOP_DEW trans_fop_dew_0c, .f_dew #define FOP_DEW trans_fop_dew_0c, .f.dew
#define FOP_WED trans_fop_wed_0c, .f_wed #define FOP_WED trans_fop_wed_0c, .f.wed
#define FOP_WEWW trans_fop_weww_0c, .f_weww #define FOP_WEWW trans_fop_weww_0c, .f.weww
static const DisasInsn table_float_0c[] = { static const DisasInsn table_float_0c[] = {
/* floating point class zero */ /* floating point class zero */
@ -3425,10 +3425,10 @@ static const DisasInsn table_float_0c[] = {
#undef FOP_DEW #undef FOP_DEW
#undef FOP_WED #undef FOP_WED
#undef FOP_WEWW #undef FOP_WEWW
#define FOP_WEW trans_fop_wew_0e, .f_wew #define FOP_WEW trans_fop_wew_0e, .f.wew
#define FOP_DEW trans_fop_dew_0e, .f_dew #define FOP_DEW trans_fop_dew_0e, .f.dew
#define FOP_WED trans_fop_wed_0e, .f_wed #define FOP_WED trans_fop_wed_0e, .f.wed
#define FOP_WEWW trans_fop_weww_0e, .f_weww #define FOP_WEWW trans_fop_weww_0e, .f.weww
static const DisasInsn table_float_0e[] = { static const DisasInsn table_float_0e[] = {
/* floating point class zero */ /* floating point class zero */