From 5cbcbabde8b3ded42c4cefb537cce829e99cbfeb Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Tue, 29 Dec 2020 14:05:52 +0000 Subject: [PATCH] update sv_analysis --- openpower/isatables/RM-1P-2S1D.csv | 22 +++--- openpower/isatables/RM-1P-3S1D.csv | 5 -- openpower/isatables/RM-2P-1S1D.csv | 58 +++++++-------- openpower/isatables/RM-2P-2S1D.csv | 2 - openpower/isatables/minor_63h.csv | 24 +++--- openpower/isatables/minor_63l.csv | 60 +++++++-------- openpower/opcode_regs_deduped.mdwn | 114 +++++++++++++++++------------ openpower/sv_analysis.py | 10 ++- 8 files changed, 155 insertions(+), 140 deletions(-) diff --git a/openpower/isatables/RM-1P-2S1D.csv b/openpower/isatables/RM-1P-2S1D.csv index 4932483f1..669286f74 100644 --- a/openpower/isatables/RM-1P-2S1D.csv +++ b/openpower/isatables/RM-1P-2S1D.csv @@ -11,9 +11,9 @@ cmp,1P,EXTRA3,d:BF,s:RA,s:RB,0,RA,RB,0,0,0,BF cmpl,1P,EXTRA3,d:BF,s:RA,s:RB,0,RA,RB,0,0,0,BF cmprb,1P,EXTRA3,d:BF,s:RA,s:RB,0,RA,RB,0,0,0,BF cmpeqb,1P,EXTRA3,d:BF,s:RA,s:RB,0,RA,RB,0,0,0,BF -0/0=fcmpu,1P,EXTRA3,d:BF,s:FRA,s:FRB,0,FRA,FRB,0,0,0,1 -1/0=fcmpo,1P,EXTRA3,d:BF,s:FRA,s:FRB,0,FRA,FRB,0,0,0,1 -4/0=ftdiv,1P,EXTRA3,d:BF,s:FRA,s:FRB,0,FRA,FRB,0,0,0,1 +0/0=fcmpu,1P,EXTRA3,d:BF,s:FRA,s:FRB,0,FRA,FRB,0,0,0,BF +1/0=fcmpo,1P,EXTRA3,d:BF,s:FRA,s:FRB,0,FRA,FRB,0,0,0,BF +4/0=ftdiv,1P,EXTRA3,d:BF,s:FRA,s:FRB,0,FRA,FRB,0,0,0,BF bpermd,1P,EXTRA3,d:RA,s:RS,s:RB,0,RS,RB,0,RA,0,0 modud,1P,EXTRA3,d:RT,s:RA,s:RB,0,RA,RB,0,RT,0,0 moduw,1P,EXTRA3,d:RT,s:RA,s:RB,0,RA,RB,0,RT,0,0 @@ -77,17 +77,17 @@ divduo,1P,EXTRA3,"d:RT,d:CR0",s:RA,s:RB,0,RA,RB,0,RT,0,CR0 divwuo,1P,EXTRA3,"d:RT,d:CR0",s:RA,s:RB,0,RA,RB,0,RT,0,CR0 divdo,1P,EXTRA3,"d:RT,d:CR0",s:RA,s:RB,0,RA,RB,0,RT,0,CR0 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,"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,"d:FRT,d:CR1",s:FRA,s:FRC,0,FRA,0,FRC,FRT,0,CR1 fdiv,1P,EXTRA3,"d:FRT,d:CR1",s:FRA,s:FRB,0,FRA,FRB,0,FRT,0,CR1 fsub,1P,EXTRA3,"d:FRT,d:CR1",s:FRA,s:FRB,0,FRA,FRB,0,FRT,0,CR1 fadd,1P,EXTRA3,"d:FRT,d:CR1",s:FRA,s:FRB,0,FRA,FRB,0,FRT,0,CR1 fmul,1P,EXTRA3,"d:FRT,d:CR1",s:FRA,s:FRC,0,FRA,0,FRC,FRT,0,CR1 +0/8=fcpsgn,1P,EXTRA3,"d:FRT,d:CR1",s:FRA,s:FRB,0,FRA,FRB,0,FRT,0,CR1 +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,CR1 +fsubs,1P,EXTRA3,TODO,0,0,0,FRA,FRB,0,FRT,0,CR1 +fadds,1P,EXTRA3,TODO,0,0,0,FRA,FRB,0,FRT,0,CR1 +fmuls,1P,EXTRA3,TODO,0,0,0,FRA,0,FRC,FRT,0,CR1 26/6=fmrgow,1P,EXTRA3,TODO,0,0,0,FRA,FRB,0,FRT,0,0 30/6=fmrgew,1P,EXTRA3,TODO,0,0,0,FRA,FRB,0,FRT,0,0 -0/8=fcpsgn,1P,EXTRA3,"d:FRT,d:CR1",s:FRA,s:FRB,0,FRA,FRB,0,FRT,0,CR1 diff --git a/openpower/isatables/RM-1P-3S1D.csv b/openpower/isatables/RM-1P-3S1D.csv index 1b9207cb7..2a7ed4e12 100644 --- a/openpower/isatables/RM-1P-3S1D.csv +++ b/openpower/isatables/RM-1P-3S1D.csv @@ -35,8 +35,3 @@ 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,CR1 -fmsub,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,CR1 -fmadd,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,CR1 -fnmsub,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,CR1 -fnmadd,1P,EXTRA2,"d:FRT,d:CR1",s:FRA,s:FRB,s:FRC,FRA,FRB,FRC,FRT,0,CR1 diff --git a/openpower/isatables/RM-2P-1S1D.csv b/openpower/isatables/RM-2P-1S1D.csv index 9364ce19b..7ea4fe37b 100644 --- a/openpower/isatables/RM-2P-1S1D.csv +++ b/openpower/isatables/RM-2P-1S1D.csv @@ -1,11 +1,9 @@ insn,Ptype,Etype,0,1,2,3,in1,in2,in3,out,CR in,CR out mcrf,2P,EXTRA3,d:BF,s:BFA,0,0,0,0,0,0,BFA,BF -2/0=mcrfs,2P,EXTRA3,TODO,0,0,0,0,0,0,0,0,1 -1/6=mtfsb1,2P,EXTRA3,TODO,0,0,0,0,0,0,0,0,0 -2/6=mtfsb0,2P,EXTRA3,TODO,0,0,0,0,0,0,0,0,0 -4/6=mtfsfi,2P,EXTRA3,TODO,0,0,0,0,0,0,0,0,0 mfcr/mfocrf,2P,EXTRA3,d:RT,s:CR,0,0,0,0,0,RT,WHOLE_REG,0 setb,2P,EXTRA3,d:RT,s:BFA,0,0,0,0,0,RT,BFA,0 +5/0=ftsqrt,2P,EXTRA3,TODO,0,0,0,0,FRB,0,0,0,BF +22/7=mtfsf,2P,EXTRA3,TODO,0,0,0,0,FRB,0,0,0,CR1 cmpli,2P,EXTRA3,d:BF,s:RA,0,0,RA,0,0,0,0,BF cmpi,2P,EXTRA3,d:BF,s:RA,0,0,RA,0,0,0,0,BF neg,2P,EXTRA3,d:RT,s:RA,0,0,RA,0,0,RT,0,0 @@ -36,6 +34,29 @@ addzeo,2P,EXTRA3,"d:RT,d:CR0",s:RA,0,0,RA,0,0,RT,0,CR0 extsh,2P,EXTRA3,"d:RA,d:CR0",s:RS,0,0,RS,0,0,RA,0,CR0 extsb,2P,EXTRA3,"d:RA,d:CR0",s:RS,0,0,RS,0,0,RA,0,CR0 extsw,2P,EXTRA3,"d:RA,d:CR0",s:RS,0,0,RS,0,0,RA,0,CR0 +fsqrt,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +fre,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +frsqrte,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +18/7=mffsfamily,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +1/8=fneg,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +2/8=fmr,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +4/8=fnabs,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +8/8=fabs,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +12/8=frin,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +13/8=friz,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +14/8=frip,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +15/8=frim,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +0/12=frsp,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +0/14=fctiw,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +4/14=fctiwu,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +25/14=fctid,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +26/14=fcfid,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +29/14=fctidu,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +30/14=fcfidu,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +0/15=fctiwz,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +4/15=fctiwuz,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +25/15=fctidz,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 +29/15=fctiduz,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 addic.,2P,EXTRA3,"d:RT,d:CR0",s:RA,0,0,RA,0,0,RT,0,CR0 rlwinm,2P,EXTRA3,"d:RA,d:CR0",s:RS,0,0,0,0,RS,RA,0,CR0 andi.,2P,EXTRA3,"d:RA,d:CR0",s:RS,0,0,RS,0,0,RA,0,CR0 @@ -57,29 +78,6 @@ 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,"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,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 -fre,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 -frsqrte,2P,EXTRA3,"d:FRT,d:CR1",s:FRA,0,0,0,FRB,0,FRT,0,CR1 -18/7=mffsfamily,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -1/8=fneg,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -2/8=fmr,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -4/8=fnabs,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -8/8=fabs,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -12/8=frin,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -13/8=friz,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -14/8=frip,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -15/8=frim,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -0/12=frsp,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -0/14=fctiw,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -4/14=fctiwu,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -25/14=fctid,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -26/14=fcfid,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -29/14=fctidu,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -30/14=fcfidu,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -0/15=fctiwz,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -4/15=fctiwuz,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -25/15=fctidz,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 -29/15=fctiduz,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,0 +fsqrts,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,CR1 +fres,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,CR1 +frsqrtes,2P,EXTRA3,TODO,0,0,0,0,FRB,0,FRT,0,CR1 diff --git a/openpower/isatables/RM-2P-2S1D.csv b/openpower/isatables/RM-2P-2S1D.csv index cf1a6239c..e47efb85e 100644 --- a/openpower/isatables/RM-2P-2S1D.csv +++ b/openpower/isatables/RM-2P-2S1D.csv @@ -1,4 +1,2 @@ insn,Ptype,Etype,0,1,2,3,in1,in2,in3,out,CR in,CR out mtcrf/mtocrf,2P,EXTRA2,d:CR,s:RS,s:CR,0,RS,0,0,0,WHOLE_REG,WHOLE_REG -5/0=ftsqrt,2P,EXTRA2,TODO,0,0,0,0,FRB,0,0,0,1 -22/7=mtfsf,2P,EXTRA2,TODO,0,0,0,0,FRB,0,0,0,0 diff --git a/openpower/isatables/minor_63h.csv b/openpower/isatables/minor_63h.csv index 86289186c..0e1358e1c 100644 --- a/openpower/isatables/minor_63h.csv +++ b/openpower/isatables/minor_63h.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 -0b0010,FPU,OP_FPOP,FRA,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fdiv, -0b0100,FPU,OP_FPOP,FRA,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fsub, -0b0101,FPU,OP_FPOP,FRA,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fadd, -0b0110,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fsqrt, -0b0111,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fsel, -0b1000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fre, -0b1001,FPU,OP_FPOP,FRA,NONE,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fmul, -0b1010,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,frsqrte, -0b1100,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fmsub, -0b1101,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fmadd, -0b1110,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fnmsub, -0b1111,FPU,OP_FPOP,FRA,FRB,FRC,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fnmadd, +0b0010,FPU,OP_FPOP,FRA,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fdiv, +0b0100,FPU,OP_FPOP,FRA,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fsub, +0b0101,FPU,OP_FPOP,FRA,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fadd, +0b0110,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fsqrt, +0b0111,FPU,OP_FPOP,FRA,FRB,FRC,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fsel, +0b1000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fre, +0b1001,FPU,OP_FPOP,FRA,NONE,FRC,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fmul, +0b1010,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,frsqrte, +0b1100,FPU,OP_FPOP,FRA,FRB,FRC,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fmsub, +0b1101,FPU,OP_FPOP,FRA,FRB,FRC,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fmadd, +0b1110,FPU,OP_FPOP,FRA,FRB,FRC,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fnmsub, +0b1111,FPU,OP_FPOP,FRA,FRB,FRC,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fnmadd, diff --git a/openpower/isatables/minor_63l.csv b/openpower/isatables/minor_63l.csv index 4cd162442..5313a3311 100644 --- a/openpower/isatables/minor_63l.csv +++ b/openpower/isatables/minor_63l.csv @@ -1,33 +1,33 @@ 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 -0b000000000,FPU,OP_FPOP,FRA,FRB,NONE,NONE,0,1,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,0/0=fcmpu, -0b000000001,FPU,OP_FPOP,FRA,FRB,NONE,NONE,0,1,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,1/0=fcmpo, -0b000000010,FPU,OP_FPOP,NONE,NONE,NONE,NONE,0,1,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,2/0=mcrfs, -0b000000100,FPU,OP_FPOP,FRA,FRB,NONE,NONE,0,1,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,4/0=ftdiv, -0b000000101,FPU,OP_FPOP,NONE,FRB,NONE,NONE,0,1,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,5/0=ftsqrt, -0b011000001,FPU,OP_FPOP,NONE,NONE,NONE,NONE,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,1/6=mtfsb1, -0b011000010,FPU,OP_FPOP,NONE,NONE,NONE,NONE,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,2/6=mtfsb0, -0b011000100,FPU,OP_FPOP,NONE,NONE,NONE,NONE,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,4/6=mtfsfi, +0b000000000,FPU,OP_FPOP,FRA,FRB,NONE,NONE,NONE,BF,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,0/0=fcmpu, +0b000000001,FPU,OP_FPOP,FRA,FRB,NONE,NONE,NONE,BF,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,1/0=fcmpo, +0b000000010,FPU,OP_FPOP,NONE,NONE,NONE,NONE,NONE,BF,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,2/0=mcrfs, +0b000000100,FPU,OP_FPOP,FRA,FRB,NONE,NONE,NONE,BF,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,4/0=ftdiv, +0b000000101,FPU,OP_FPOP,NONE,FRB,NONE,NONE,NONE,BF,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,5/0=ftsqrt, +0b011000001,FPU,OP_FPOP,NONE,NONE,NONE,NONE,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,1/6=mtfsb1, +0b011000010,FPU,OP_FPOP,NONE,NONE,NONE,NONE,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,2/6=mtfsb0, +0b011000100,FPU,OP_FPOP,NONE,NONE,NONE,NONE,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,4/6=mtfsfi, 0b011011010,FPU,OP_FPOP_I,FRA,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,26/6=fmrgow, 0b011011110,FPU,OP_FPOP_I,FRA,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,30/6=fmrgew, -0b011110010,FPU,OP_FPOP_I,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,18/7=mffsfamily, -0b011110110,FPU,OP_FPOP_I,NONE,FRB,NONE,NONE,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,22/7=mtfsf, -0b100000000,FPU,OP_FPOP,FRA,FRB,NONE,FRT,0,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,0/8=fcpsgn, -0b100000001,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,1/8=fneg, -0b100000010,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,2/8=fmr, -0b100000100,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,4/8=fnabs, -0b100001000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,8/8=fabs, -0b100001100,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,12/8=frin, -0b100001101,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,13/8=friz, -0b100001110,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,14/8=frip, -0b100001111,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,15/8=frim, -0b110000000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,0/12=frsp, -0b111000000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,0/14=fctiw, -0b111000100,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,4/14=fctiwu, -0b111011001,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,25/14=fctid, -0b111011010,FPU,OP_FPOP_I,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,26/14=fcfid, -0b111011101,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,29/14=fctidu, -0b111011110,FPU,OP_FPOP_I,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,30/14=fcfidu, -0b111100000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,0/15=fctiwz, -0b111100100,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,4/15=fctiwuz, -0b111111001,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,25/15=fctidz, -0b111111101,FPU,OP_FPOP,NONE,FRB,NONE,FRT,0,0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,29/15=fctiduz, +0b011110010,FPU,OP_FPOP_I,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,18/7=mffsfamily, +0b011110110,FPU,OP_FPOP_I,NONE,FRB,NONE,NONE,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,22/7=mtfsf, +0b100000000,FPU,OP_FPOP,FRA,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,0/8=fcpsgn, +0b100000001,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,1/8=fneg, +0b100000010,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,2/8=fmr, +0b100000100,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,4/8=fnabs, +0b100001000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,8/8=fabs, +0b100001100,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,12/8=frin, +0b100001101,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,13/8=friz, +0b100001110,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,14/8=frip, +0b100001111,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,15/8=frim, +0b110000000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC,0,0,0/12=frsp, +0b111000000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,0/14=fctiw, +0b111000100,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,4/14=fctiwu, +0b111011001,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,25/14=fctid, +0b111011010,FPU,OP_FPOP_I,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,26/14=fcfid, +0b111011101,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,29/14=fctidu, +0b111011110,FPU,OP_FPOP_I,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,30/14=fcfidu, +0b111100000,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,0/15=fctiwz, +0b111100100,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,4/15=fctiwuz, +0b111111001,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,25/15=fctidz, +0b111111101,FPU,OP_FPOP,NONE,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,29/15=fctiduz, diff --git a/openpower/opcode_regs_deduped.mdwn b/openpower/opcode_regs_deduped.mdwn index 603941831..25ae2c181 100644 --- a/openpower/opcode_regs_deduped.mdwn +++ b/openpower/opcode_regs_deduped.mdwn @@ -17,6 +17,7 @@ LDST-3R-CRo | LDSTRM-2P-3S | LDST-3R-1W | LDSTRM-2P-2S1D | | non-SV | imm | non-SV | +CRo | - | CRio | RM-2P-1S1D | CR=2R1W | RM-1P-2S1D | 1W | non-SV | @@ -24,6 +25,7 @@ CR=2R1W | RM-1P-2S1D | 1R | non-SV | 1R-imm | non-SV | 1R-CRo | RM-2P-1S1D | +1R-CRo | RM-2P-1S1D | 1R-CRio | RM-2P-2S1D | 1R-1W | RM-2P-1S1D | 1R-1W-imm | RM-2P-1S1D | @@ -32,12 +34,12 @@ CR=2R1W | RM-1P-2S1D | 1R-1W-CRio | RM-2P-1S1D | 2R | non-SV | 2R-CRo | RM-1P-2S1D | -2R-CRio | RM-1P-2S1D | 2R-1W | RM-1P-2S1D | 2R-1W-CRo | RM-1P-2S1D | 2R-1W-CRo | RM-1P-2S1D | 2R-1W-CRi | RM-1P-3S1D | 2R-1W-CRio | RM-1P-2S1D | +3R-1W-CRo | - | 3R-1W-CRio | RM-1P-3S1D | """]] @@ -56,12 +58,14 @@ LDST | 3 | 0 | 0 | 1 | | | LDST-3R-CRo | LDST | 3 | 1 | 0 | 0 | | | LDST-3R-1W | OTHER | 0 | 0 | 0 | 0 | | | | OTHER | 0 | 0 | 0 | 0 | 1 | LI | imm | +OTHER | 0 | 0 | 0 | 1 | | | CRo | OTHER | 0 | 0 | 1 | 1 | | | CRio | OTHER | 0 | 0 | 1 | 1 | 1 | | | CR=2R1W | OTHER | 0 | 1 | 0 | 0 | | | 1W | OTHER | 0 | 1 | 1 | 0 | | | 1W-CRi | OTHER | 1 | 0 | 0 | 0 | | | 1R | OTHER | 1 | 0 | 0 | 0 | 1 | SI | 1R-imm | +OTHER | 1 | 0 | 0 | 1 | | | 1R-CRo | OTHER | 1 | 0 | 0 | 1 | 1 | SI/UI | 1R-CRo | OTHER | 1 | 0 | 1 | 1 | | | 1R-CRio | OTHER | 1 | 1 | 0 | 0 | | | 1R-1W | @@ -71,12 +75,12 @@ OTHER | 1 | 1 | 0 | 1 | 1 | M1/SH/SH32/SI/UI | 1R-1W-CRo | OTHER | 1 | 1 | 1 | 1 | | | 1R-1W-CRio | OTHER | 2 | 0 | 0 | 0 | | | 2R | OTHER | 2 | 0 | 0 | 1 | | | 2R-CRo | -OTHER | 2 | 0 | 1 | 1 | | | 2R-CRio | OTHER | 2 | 1 | 0 | 0 | | | 2R-1W | OTHER | 2 | 1 | 0 | 1 | | | 2R-1W-CRo | OTHER | 2 | 1 | 0 | 1 | 1 | SH/SH32 | 2R-1W-CRo | OTHER | 2 | 1 | 1 | 0 | | | 2R-1W-CRi | OTHER | 2 | 1 | 1 | 1 | | | 2R-1W-CRio | +OTHER | 3 | 1 | 0 | 1 | | | 3R-1W-CRo | OTHER | 3 | 1 | 1 | 1 | | | 3R-1W-CRio | """]] @@ -221,17 +225,23 @@ CSV | opcode | asm | form | major.csv | 18 | b | I-Form | """]] -## CRio (RM-2P-1S1D) +## CRo (-) [[!table data=""" CSV | opcode | asm | form | -minor_19.csv | 0b0000000000 | mcrf | XL-Form | minor_63l.csv | 0b000000010 | 2/0=mcrfs | -Form | minor_63l.csv | 0b011000001 | 1/6=mtfsb1 | -Form | minor_63l.csv | 0b011000010 | 2/6=mtfsb0 | -Form | minor_63l.csv | 0b011000100 | 4/6=mtfsfi | -Form | """]] +## CRio (RM-2P-1S1D) + +[[!table data=""" +CSV | opcode | asm | form | +minor_19.csv | 0b0000000000 | mcrf | XL-Form | +"""]] + ## CR=2R1W (RM-1P-2S1D) [[!table data=""" @@ -282,6 +292,14 @@ major.csv | 3 | twi | D-Form | ## 1R-CRo (RM-2P-1S1D) +[[!table data=""" +CSV | opcode | asm | form | +minor_63l.csv | 0b000000101 | 5/0=ftsqrt | -Form | +minor_63l.csv | 0b011110110 | 22/7=mtfsf | -Form | +"""]] + +## 1R-CRo (RM-2P-1S1D) + [[!table data=""" CSV | opcode | asm | form | major.csv | 10 | cmpli | D-Form | @@ -293,8 +311,6 @@ major.csv | 11 | cmpi | D-Form | [[!table data=""" CSV | opcode | asm | form | minor_31.csv | 0b0010010000 | mtcrf/mtocrf | XFX-Form | -minor_63l.csv | 0b000000101 | 5/0=ftsqrt | -Form | -minor_63l.csv | 0b011110110 | 22/7=mtfsf | -Form | """]] ## 1R-1W (RM-2P-1S1D) @@ -341,6 +357,29 @@ minor_31.csv | 0b1011001010 | addzeo | XO-Form | minor_31.csv | 0b1110011010 | extsh | X-Form | minor_31.csv | 0b1110111010 | extsb | X-Form | minor_31.csv | 0b1111011010 | extsw | X-Form | +minor_63h.csv | 0b0110 | fsqrt | -Form | +minor_63h.csv | 0b1000 | fre | -Form | +minor_63h.csv | 0b1010 | frsqrte | -Form | +minor_63l.csv | 0b011110010 | 18/7=mffsfamily | -Form | +minor_63l.csv | 0b100000001 | 1/8=fneg | -Form | +minor_63l.csv | 0b100000010 | 2/8=fmr | -Form | +minor_63l.csv | 0b100000100 | 4/8=fnabs | -Form | +minor_63l.csv | 0b100001000 | 8/8=fabs | -Form | +minor_63l.csv | 0b100001100 | 12/8=frin | -Form | +minor_63l.csv | 0b100001101 | 13/8=friz | -Form | +minor_63l.csv | 0b100001110 | 14/8=frip | -Form | +minor_63l.csv | 0b100001111 | 15/8=frim | -Form | +minor_63l.csv | 0b110000000 | 0/12=frsp | -Form | +minor_63l.csv | 0b111000000 | 0/14=fctiw | -Form | +minor_63l.csv | 0b111000100 | 4/14=fctiwu | -Form | +minor_63l.csv | 0b111011001 | 25/14=fctid | -Form | +minor_63l.csv | 0b111011010 | 26/14=fcfid | -Form | +minor_63l.csv | 0b111011101 | 29/14=fctidu | -Form | +minor_63l.csv | 0b111011110 | 30/14=fcfidu | -Form | +minor_63l.csv | 0b111100000 | 0/15=fctiwz | -Form | +minor_63l.csv | 0b111100100 | 4/15=fctiwuz | -Form | +minor_63l.csv | 0b111111001 | 25/15=fctidz | -Form | +minor_63l.csv | 0b111111101 | 29/15=fctiduz | -Form | """]] ## 1R-1W-CRo (RM-2P-1S1D) @@ -377,29 +416,6 @@ minor_59.csv | 0b01110 | fcfid[u]s | -Form | minor_59.csv | 0b10110 | fsqrts | -Form | minor_59.csv | 0b11000 | fres | -Form | minor_59.csv | 0b11010 | frsqrtes | -Form | -minor_63h.csv | 0b0110 | fsqrt | -Form | -minor_63h.csv | 0b1000 | fre | -Form | -minor_63h.csv | 0b1010 | frsqrte | -Form | -minor_63l.csv | 0b011110010 | 18/7=mffsfamily | -Form | -minor_63l.csv | 0b100000001 | 1/8=fneg | -Form | -minor_63l.csv | 0b100000010 | 2/8=fmr | -Form | -minor_63l.csv | 0b100000100 | 4/8=fnabs | -Form | -minor_63l.csv | 0b100001000 | 8/8=fabs | -Form | -minor_63l.csv | 0b100001100 | 12/8=frin | -Form | -minor_63l.csv | 0b100001101 | 13/8=friz | -Form | -minor_63l.csv | 0b100001110 | 14/8=frip | -Form | -minor_63l.csv | 0b100001111 | 15/8=frim | -Form | -minor_63l.csv | 0b110000000 | 0/12=frsp | -Form | -minor_63l.csv | 0b111000000 | 0/14=fctiw | -Form | -minor_63l.csv | 0b111000100 | 4/14=fctiwu | -Form | -minor_63l.csv | 0b111011001 | 25/14=fctid | -Form | -minor_63l.csv | 0b111011010 | 26/14=fcfid | -Form | -minor_63l.csv | 0b111011101 | 29/14=fctidu | -Form | -minor_63l.csv | 0b111011110 | 30/14=fcfidu | -Form | -minor_63l.csv | 0b111100000 | 0/15=fctiwz | -Form | -minor_63l.csv | 0b111100100 | 4/15=fctiwuz | -Form | -minor_63l.csv | 0b111111001 | 25/15=fctidz | -Form | -minor_63l.csv | 0b111111101 | 29/15=fctiduz | -Form | """]] ## 2R (non-SV) @@ -419,12 +435,6 @@ minor_31.csv | 0b0000000000 | cmp | X-Form | minor_31.csv | 0b0000100000 | cmpl | X-Form | minor_31.csv | 0b0011000000 | cmprb | X-Form | minor_31.csv | 0b0011100000 | cmpeqb | X-Form | -"""]] - -## 2R-CRio (RM-1P-2S1D) - -[[!table data=""" -CSV | opcode | asm | form | minor_63l.csv | 0b000000000 | 0/0=fcmpu | -Form | minor_63l.csv | 0b000000001 | 1/0=fcmpo | -Form | minor_63l.csv | 0b000000100 | 4/0=ftdiv | -Form | @@ -503,6 +513,11 @@ minor_31.csv | 0b1111001001 | divduo | XO-Form | minor_31.csv | 0b1111001011 | divwuo | XO-Form | minor_31.csv | 0b1111101001 | divdo | XO-Form | minor_31.csv | 0b1111101011 | divwo | XO-Form | +minor_63h.csv | 0b0010 | fdiv | -Form | +minor_63h.csv | 0b0100 | fsub | -Form | +minor_63h.csv | 0b0101 | fadd | -Form | +minor_63h.csv | 0b1001 | fmul | -Form | +minor_63l.csv | 0b100000000 | 0/8=fcpsgn | -Form | """]] ## 2R-1W-CRo (RM-1P-2S1D) @@ -560,23 +575,14 @@ minor_59.csv | 0b10010 | fdivs | -Form | minor_59.csv | 0b10100 | fsubs | -Form | minor_59.csv | 0b10101 | fadds | -Form | minor_59.csv | 0b11001 | fmuls | -Form | -minor_63h.csv | 0b0010 | fdiv | -Form | -minor_63h.csv | 0b0100 | fsub | -Form | -minor_63h.csv | 0b0101 | fadd | -Form | -minor_63h.csv | 0b1001 | fmul | -Form | minor_63l.csv | 0b011011010 | 26/6=fmrgow | -Form | minor_63l.csv | 0b011011110 | 30/6=fmrgew | -Form | -minor_63l.csv | 0b100000000 | 0/8=fcpsgn | -Form | """]] -## 3R-1W-CRio (RM-1P-3S1D) +## 3R-1W-CRo (-) [[!table data=""" CSV | opcode | asm | form | -minor_59.csv | 0b11100 | fmsubs | -Form | -minor_59.csv | 0b11101 | fmadds | -Form | -minor_59.csv | 0b11110 | fnmsubs | -Form | -minor_59.csv | 0b11111 | fnmadds | -Form | minor_63h.csv | 0b0111 | fsel | -Form | minor_63h.csv | 0b1100 | fmsub | -Form | minor_63h.csv | 0b1101 | fmadd | -Form | @@ -584,6 +590,16 @@ minor_63h.csv | 0b1110 | fnmsub | -Form | minor_63h.csv | 0b1111 | fnmadd | -Form | """]] +## 3R-1W-CRio (RM-1P-3S1D) + +[[!table data=""" +CSV | opcode | asm | form | +minor_59.csv | 0b11100 | fmsubs | -Form | +minor_59.csv | 0b11101 | fmadds | -Form | +minor_59.csv | 0b11110 | fnmsubs | -Form | +minor_59.csv | 0b11111 | fnmadds | -Form | +"""]] + # svp64 remaps * **LDST-1R-1W-imm**: LDSTRM-2P-1S1D * **LDST-1R-2W-imm**: LDSTRM-2P-1S2D @@ -594,10 +610,12 @@ minor_63h.csv | 0b1111 | fnmadd | -Form | * **LDST-3R**: LDSTRM-2P-3S * **LDST-3R-CRo**: LDSTRM-2P-3S * **LDST-3R-1W**: LDSTRM-2P-2S1D +* **CRo**: - * **CRio**: RM-2P-1S1D * **CR=2R1W**: RM-1P-2S1D * **1W-CRi**: RM-2P-1S1D * **1R-CRo**: RM-2P-1S1D +* **1R-CRo**: RM-2P-1S1D * **1R-CRio**: RM-2P-2S1D * **1R-1W**: RM-2P-1S1D * **1R-1W-imm**: RM-2P-1S1D @@ -605,12 +623,12 @@ minor_63h.csv | 0b1111 | fnmadd | -Form | * **1R-1W-CRo**: RM-2P-1S1D * **1R-1W-CRio**: RM-2P-1S1D * **2R-CRo**: RM-1P-2S1D -* **2R-CRio**: RM-1P-2S1D * **2R-1W**: RM-1P-2S1D * **2R-1W-CRo**: RM-1P-2S1D * **2R-1W-CRo**: RM-1P-2S1D * **2R-1W-CRi**: RM-1P-3S1D * **2R-1W-CRio**: RM-1P-2S1D +* **3R-1W-CRo**: - * **3R-1W-CRio**: RM-1P-3S1D ## LDSTRM-2P-1S1D @@ -633,6 +651,10 @@ minor_63h.csv | 0b1111 | fnmadd | -Form | [[!table format=csv file="openpower/isatables/LDSTRM-2P-3S.csv"]] +## - + +[[!table format=csv file="openpower/isatables/-.csv"]] + ## RM-2P-1S1D [[!table format=csv file="openpower/isatables/RM-2P-1S1D.csv"]] diff --git a/openpower/sv_analysis.py b/openpower/sv_analysis.py index e39f7a40c..381ec7f4d 100644 --- a/openpower/sv_analysis.py +++ b/openpower/sv_analysis.py @@ -183,6 +183,8 @@ def process_csvs(): # Ignore those containing: valid test sprs for fname in glob(pth): + if '-' in fname: + continue if 'valid' in fname: continue if 'test' in fname: @@ -447,7 +449,7 @@ 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']: + elif regs == ['','FRB','','FRT','','CR1']: res['0'] = 'd:FRT,d:CR1' # FRT,CR1: Rdest1_EXTRA3 res['1'] = 's:FRA' # FRA: Rsrc1_EXTRA3 else: @@ -459,16 +461,16 @@ 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','','FRC','FRT','0','CR1']: + elif regs == ['FRA','','FRC','FRT','','CR1']: res['0'] = 'd:FRT,d:CR1' # FRT,CR1: Rdest1_EXTRA3 res['1'] = 's:FRA' # FRA: Rsrc1_EXTRA3 res['2'] = 's:FRC' # FRC: Rsrc1_EXTRA3 # should be for fcmp - elif regs == ['FRA','FRB','','','0','1']: + elif regs == ['FRA','FRB','','','','BF']: res['0'] = 'd:BF' # BF: Rdest1_EXTRA3 res['1'] = 's:FRA' # FRA: Rsrc1_EXTRA3 res['2'] = 's:FRB' # FRB: Rsrc1_EXTRA3 - elif regs == ['FRA','FRB','','FRT','0','CR1']: + elif regs == ['FRA','FRB','','FRT','','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 -- 2.30.2