arch-power: Added PIR register
authorKajol Jain <kajoljain797@gmail.com>
Tue, 11 Jun 2019 10:09:17 +0000 (15:39 +0530)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 24 Jan 2021 04:01:00 +0000 (04:01 +0000)
* Added PIR(Processor Identification Register).
* Added mfpir instruction to get content of register PIR.

Change-Id: I16b82684e7c9a5e5172f0395dd0a021791757425
Signed-off-by: Kajol Jain <kajoljain797@gmail.com>
src/arch/power/isa/decoder.isa
src/arch/power/isa/operands.isa
src/arch/power/registers.hh

index b5e077f9bfa2c02c88b7de08441de69cc50dd688..3227d757e772384b71f50d32b3ad4291726ee25e 100644 (file)
@@ -628,7 +628,7 @@ decode PO default Unknown::unknown() {
                 0x3c9: mflpcr({{Rt = LPCR;}});
                 0x3E8: mfpvr({{ Rt = PVR; }});
                 0x3e9: mflpidr({{Rt = LPIDR;}});
-
+                0x3ff: mfpir({{ Rt = PIR;}}, [ IsPrivileged ]);
             }
             467: decode SPR {
                 0x004: mttfhar({{TFHAR = Rs;}});
index 7f2a9da8fb3cfcfcc7ce72c84f6c5a29b6f93f2a..bc254cf74917b57598a3af3596c2beefce53b4dc 100644 (file)
@@ -145,6 +145,7 @@ def operands {{
     'IC': ('IntReg', 'ud', 'INTREG_IC', 'IsInteger' , 9),
     'VTB': ('IntReg', 'ud', 'INTREG_VTB', 'IsInteger' , 9),
     'HSPRG1': ('IntReg', 'ud', 'INTREG_HSPRG1', 'IsInteger' , 9),
+    'PIR': ('IntReg', 'uw', 'INTREG_PIR', 'IsInteger' , 9),
 
     # Setting as IntReg so things are stored as an integer, not double
     'FPSCR': ('IntReg', 'uw', 'INTREG_FPSCR', 'IsFloating', 9),
index 3690fb641bff2c5bef2f990237b79b418e89bdb3..e766fcd1c25f85dbe04ae89618480a86aef874c5 100644 (file)
@@ -64,7 +64,7 @@ const int NumIntArchRegs = 32;
 
 // CR, XER, LR, CTR, TAR, FPSCR, RSV, RSV-LEN, RSV-ADDR
 // and zero register, which doesn't actually exist but needs a number
-const int NumIntSpecialRegs = 87;
+const int NumIntSpecialRegs = 88;
 const int NumFloatArchRegs = 32;
 const int NumFloatSpecialRegs = 0;
 const int NumInternalProcRegs = 0;
@@ -182,7 +182,8 @@ enum MiscIntRegNums {
     INTREG_ASDR,
     INTREG_IC,
     INTREG_VTB,
-    INTREG_HSPRG1
+    INTREG_HSPRG1,
+    INTREG_PIR
 };
 
 } // namespace PowerISA