add fp sv_analysis entries
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 28 Dec 2020 20:43:08 +0000 (20:43 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 28 Dec 2020 20:43:08 +0000 (20:43 +0000)
openpower/isatables/RM-1P-2S1D.csv
openpower/isatables/RM-1P-3S1D.csv
openpower/isatables/RM-2P-1S1D.csv
openpower/isatables/minor_59.csv
openpower/sv_analysis.py

index 50cdf9ce38c3281de8c05ff9c9447d3c62f3b440..f682a8f5cddcf1a53f548873280d35c3de1df96f 100644 (file)
@@ -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
index cfc4aa534fdf212730a6cfdb0641f0b7c1e313a8..24293c0ddef38bdb03d2ae8fb0984e8d807dc5a9 100644 (file)
@@ -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
index 980c72abb27b4096075d22937ba6b7a3b9bcfa62..2e4a958728146009dea7cf93fb927dcb4c3870b3 100644 (file)
@@ -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
index 7690842d4baf8285def1989eec0da2164cd7215e..f5bbea8dc086f05f3dcde0facdf147ab08c36bab 100644 (file)
@@ -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,
index 36e8a272e8ab06fda7af1d74178b6a37f6ec3408..63cfd888a3dc61724872ff2821f7c2205a304103 100644 (file)
@@ -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