arch-power: Fix process initialization
authorSandipan Das <sandipan@linux.ibm.com>
Sat, 6 Feb 2021 12:09:59 +0000 (17:39 +0530)
committerSandipan Das <sandipan@linux.ibm.com>
Mon, 15 Feb 2021 08:32:38 +0000 (14:02 +0530)
During process initialization, special purpose registers,
represented as misc registers, should either be explicitly
set or cleared. These contain flag bits which might have
unforseen side effects on the execution of a program.

Change-Id: If7c5af9a93283a53717cc8cbba4bf373a7e40560
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
src/arch/power/process.cc

index 735b3d9de0f7d4d8054795f67c5c305eb5903931..ea1972de38920473e1a119859a3748f71955c21c 100644 (file)
@@ -332,6 +332,10 @@ PowerProcess::argsInit(int pageSize)
     //Set the stack pointer register
     tc->setIntReg(StackPointerReg, stack_min);
 
+    //Reset the special-purpose registers
+    for (int i = 0; i < NumMiscRegs; i++)
+        tc->setMiscRegNoEffect(i, 0);
+
     //Set the machine status for a typical userspace
     Msr msr = 0;
     msr.sf = is64bit;