On 12/10/2015 06:16 AM, Chen Gang wrote: > > It passes normal building, and gcc testsuite. > > Signed-off-by: Chen Gang <gang.chen.5...@gmail.com> > --- > target-tilegx/Makefile.objs | 3 +- > target-tilegx/cpu.h | 2 ++ > target-tilegx/helper.h | 12 ++++++++ > target-tilegx/translate.c | 68 > +++++++++++++++++++++++++++++++++++++++------ > 4 files changed, 75 insertions(+), 10 deletions(-) > > diff --git a/target-tilegx/Makefile.objs b/target-tilegx/Makefile.objs > index 0db778f..136ad60 100644 > --- a/target-tilegx/Makefile.objs > +++ b/target-tilegx/Makefile.objs > @@ -1 +1,2 @@ > -obj-y += cpu.o translate.o helper.o simd_helper.o > +obj-y += cpu.o translate.o helper.o simd_helper.o \ > + helper-fsingle.o helper-fdouble.o > diff --git a/target-tilegx/cpu.h b/target-tilegx/cpu.h > index 03df107..445a606 100644 > --- a/target-tilegx/cpu.h > +++ b/target-tilegx/cpu.h > @@ -88,6 +88,8 @@ typedef struct CPUTLGState { > uint64_t spregs[TILEGX_SPR_COUNT]; /* Special used registers by outside > */ > uint64_t pc; /* Current pc */ > > + float_status fp_status; /* floating point status */
As mentioned elsewhere, this is pointless. > + case OE_RR_X0(FSINGLE_PACK1): > + case OE_RR_Y0(FSINGLE_PACK1): > + mnemonic = "fsingle_pack1"; > + goto done2; This could use a comment that we're "copying" dest to dest. > @@ -742,13 +745,21 @@ static TileExcp gen_rr_opcode(DisasContext *dc, > unsigned opext, > static TileExcp gen_rrr_opcode(DisasContext *dc, unsigned opext, > unsigned dest, unsigned srca, unsigned srcb) > { > - TCGv tdest = dest_gr(dc, dest); > - TCGv tsrca = load_gr(dc, srca); > - TCGv tsrcb = load_gr(dc, srcb); > + TCGv tdest, tsrca, tsrcb; > TCGv t0; > const char *mnemonic; > > switch (opext) { > + case OE_RRR(FSINGLE_ADDSUB2, 0, X0): > + mnemonic = "fsingle_addsub2"; > + goto done2; > + } Likewise. r~