arch-power: Added PIR register
authorKajol Jain <kajoljain797@gmail.com>
Tue, 11 Jun 2019 10:09:17 +0000 (15:39 +0530)
committerKajol Jain <kajoljain797@gmail.com>
Wed, 12 Jun 2019 08:47:59 +0000 (14:17 +0530)
* 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 b2647ce590bdad1ffc7b35eaaf5a9fa12306c803..dbf8810d56314f83ca3050ca76680af11c8dc58d 100644 (file)
@@ -630,7 +630,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 7b8aaa0815184d4d1d7f3163415f381153c8b1cc..41a4fbb0a97e996d55ad9e6da471ca447302a6f7 100644 (file)
@@ -147,6 +147,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 bee4671bd736aa8c6634507131ec469e99be94bc..ad5820bdf18dc26cb6a31c373237375af204d97b 100644 (file)
@@ -68,7 +68,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;
@@ -188,7 +188,8 @@ enum MiscIntRegNums {
     INTREG_ASDR,
     INTREG_IC,
     INTREG_VTB,
-    INTREG_HSPRG1
+    INTREG_HSPRG1,
+    INTREG_PIR
 };
 
 } // namespace PowerISA