From 11d5ffa108983d5d9742f0aad23f80c691f285ee Mon Sep 17 00:00:00 2001 From: Andrea Pellegrini Date: Tue, 22 Jan 2013 00:13:28 -0600 Subject: o3 cpu: fix zero reg problem There was an issue w/ the rename logic, which would assign a previous physical register to the ZeroReg architectural register in x86. This issue was giving problems for instructions squashed in threads w/ ID different from 0, sometimes allowing non-mispredicted instructions to obtain a value different from zero when reading the zeroReg. --- src/cpu/o3/rename_map.cc | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/cpu/o3/rename_map.cc b/src/cpu/o3/rename_map.cc index 8508071b4..57caa76be 100644 --- a/src/cpu/o3/rename_map.cc +++ b/src/cpu/o3/rename_map.cc @@ -158,6 +158,7 @@ SimpleRenameMap::rename(RegIndex arch_reg) } else { // Otherwise return the zero register so nothing bad happens. renamed_reg = intZeroReg; + prev_reg = intZeroReg; } } else if (arch_reg < numLogicalRegs) { // Record the current physical register that is renamed to the -- cgit v1.2.3