From 5f7ee328baa33ed7b62ab4b572791d61c8c9afa1 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Mon, 28 Dec 2020 20:43:08 +0000 Subject: [PATCH] add fp sv_analysis entries --- openpower/isatables/RM-1P-2S1D.csv | 8 ++++---- openpower/isatables/RM-1P-3S1D.csv | 8 ++++---- openpower/isatables/RM-2P-1S1D.csv | 6 +++--- openpower/isatables/minor_59.csv | 22 +++++++++++----------- openpower/sv_analysis.py | 7 +++++++ 5 files changed, 29 insertions(+), 22 deletions(-) diff --git a/openpower/isatables/RM-1P-2S1D.csv b/openpower/isatables/RM-1P-2S1D.csv index 50cdf9ce3..f682a8f5c 100644 --- a/openpower/isatables/RM-1P-2S1D.csv +++ b/openpower/isatables/RM-1P-2S1D.csv @@ -80,10 +80,10 @@ divwo,1P,EXTRA3,"d:RT,d:CR0",s:RA,s:RB,0,RA,RB,0,RT,0,CR0 rlwimi,1P,EXTRA3,"d:RA,d:CR0",s:RA,s:RS,0,RA,0,RS,RA,0,CR0 rldimi,1P,EXTRA3,"d:RA,d:CR0",s:RA,s:RS,0,RA,0,RS,RA,0,CR0 rldimi,1P,EXTRA3,"d:RA,d:CR0",s:RA,s:RS,0,RA,0,RS,RA,0,CR0 -fdivs,1P,EXTRA3,TODO,0,0,0,FRA,FRB,0,FRT,0,0 -fsubs,1P,EXTRA3,TODO,0,0,0,FRA,FRB,0,FRT,0,0 -fadds,1P,EXTRA3,TODO,0,0,0,FRA,FRB,0,FRT,0,0 -fmuls,1P,EXTRA3,TODO,0,0,0,FRA,0,FRC,FRT,0,0 +fdivs,1P,EXTRA3,"d:FRT,d:CR1",s:FRA,s:FRB,0,FRA,FRB,0,FRT,0,CR1 +fsubs,1P,EXTRA3,"d:FRT,d:CR1",s:FRA,s:FRB,0,FRA,FRB,0,FRT,0,CR1 +fadds,1P,EXTRA3,"d:FRT,d:CR1",s:FRA,s:FRB,0,FRA,FRB,0,FRT,0,CR1 +fmuls,1P,EXTRA3,TODO,0,0,0,FRA,0,FRC,FRT,0,CR1 fdiv,1P,EXTRA3,TODO,0,0,0,FRA,FRB,0,FRT,0,0 fsub,1P,EXTRA3,TODO,0,0,0,FRA,FRB,0,FRT,0,0 fadd,1P,EXTRA3,TODO,0,0,0,FRA,FRB,0,FRT,0,0 diff --git a/openpower/isatables/RM-1P-3S1D.csv b/openpower/isatables/RM-1P-3S1D.csv index cfc4aa534..24293c0dd 100644 --- a/openpower/isatables/RM-1P-3S1D.csv +++ b/openpower/isatables/RM-1P-3S1D.csv @@ -31,10 +31,10 @@ isel,1P,EXTRA2,d:RT,s:RA,s:RB,s:BC,RA_OR_ZERO,RB,0,RT,BC,0 isel,1P,EXTRA2,d:RT,s:RA,s:RB,s:BC,RA_OR_ZERO,RB,0,RT,BC,0 isel,1P,EXTRA2,d:RT,s:RA,s:RB,s:BC,RA_OR_ZERO,RB,0,RT,BC,0 isel,1P,EXTRA2,d:RT,s:RA,s:RB,s:BC,RA_OR_ZERO,RB,0,RT,BC,0 -fmsubs,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,0 -fmadds,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,0 -fnmsubs,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,0 -fnmadds,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,0 +fmsubs,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,CR1 +fmadds,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,CR1 +fnmsubs,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,CR1 +fnmadds,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,CR1 fsel,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,0 fmsub,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,0 fmadd,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,0 diff --git a/openpower/isatables/RM-2P-1S1D.csv b/openpower/isatables/RM-2P-1S1D.csv index 980c72abb..2e4a95872 100644 --- a/openpower/isatables/RM-2P-1S1D.csv +++ b/openpower/isatables/RM-2P-1S1D.csv @@ -57,9 +57,9 @@ sradi,2P,EXTRA3,"d:RA,d:CR0",s:RS,0,0,0,0,RS,RA,0,CR0 extswsli,2P,EXTRA3,"d:RA,d:CR0",s:RS,0,0,0,0,RS,RA,0,CR0 extswsli,2P,EXTRA3,"d:RA,d:CR0",s:RS,0,0,0,0,RS,RA,0,CR0 fcfid[u]s,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -fsqrts,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -fres,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -frsqrtes,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 +fsqrts,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +fres,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +frsqrtes,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 fsqrt,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 fre,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 frsqrte,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 diff --git a/openpower/isatables/minor_59.csv b/openpower/isatables/minor_59.csv index 7690842d4..f5bbea8dc 100644 --- a/openpower/isatables/minor_59.csv +++ b/openpower/isatables/minor_59.csv @@ -1,13 +1,13 @@ opcode,unit,internal op,in1,in2,in3,out,CR in,CR out,inv A,inv out,cry in,cry out,ldst len,BR,sgn ext,upd,rsrv,32b,sgn,rc,lk,sgl pipe,comment,form 0b01110,FPU,OP_FPOP_I,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fcfid[u]s, -0b10010,FPU,OP_FPOP,FRA,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fdivs, -0b10100,FPU,OP_FPOP,FRA,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fsubs, -0b10101,FPU,OP_FPOP,FRA,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fadds, -0b10110,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fsqrts, -0b11000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fres, -0b11001,FPU,OP_FPOP,FRA,NONE,FRC,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fmuls, -0b11010,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,frsqrtes, -0b11100,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fmsubs, -0b11101,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fmadds, -0b11110,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fnmsubs, -0b11111,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fnmadds, +0b10010,FPU,OP_FPOP,FRA,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fdivs, +0b10100,FPU,OP_FPOP,FRA,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fsubs, +0b10101,FPU,OP_FPOP,FRA,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fadds, +0b10110,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fsqrts, +0b11000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fres, +0b11001,FPU,OP_FPOP,FRA,NONE,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fmuls, +0b11010,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,frsqrtes, +0b11100,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fmsubs, +0b11101,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fmadds, +0b11110,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fnmsubs, +0b11111,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,fnmadds, diff --git a/openpower/sv_analysis.py b/openpower/sv_analysis.py index 36e8a272e..63cfd888a 100644 --- a/openpower/sv_analysis.py +++ b/openpower/sv_analysis.py @@ -447,6 +447,9 @@ def process_csvs(): elif regs == ['RS','','','RA','','']: res['0'] = 'd:RA' # RA: Rdest1_EXTRA3 res['1'] = 's:RS' # RS: Rsrc1_EXTRA3 + elif regs == ['','FRB','','FRT','0','CR1']: + res['0'] = 'd:FRT,d:CR1' # FRT,CR1: Rdest1_EXTRA3 + res['1'] = 's:FRA' # FRA: Rsrc1_EXTRA3 else: res['0'] = 'TODO' @@ -456,6 +459,10 @@ def process_csvs(): res['0'] = 'd:BT' # BT: Rdest1_EXTRA3 res['1'] = 's:BA' # BA: Rsrc1_EXTRA3 res['2'] = 's:BB' # BB: Rsrc2_EXTRA3 + elif regs == ['FRA','FRB','','FRT','0','CR1']: + res['0'] = 'd:FRT,d:CR1' # FRT,CR1: Rdest1_EXTRA3 + res['1'] = 's:FRA' # FRA: Rsrc1_EXTRA3 + res['2'] = 's:FRB' # FRB: Rsrc1_EXTRA3 elif name == '2R-1W' or insn_name == 'cmpb': # cmpb if insn_name in ['bpermd', 'cmpb']: res['0'] = 'd:RA' # RA: Rdest1_EXTRA3 -- 2.30.2