After much delay, this should straighten out the majority of
problems
people have been having with gcc 4.6.1. Unfortunately gcc 4.6.0
seems to
have a bug that makes a warning trigger when it shouldn't, but it
looks
like that was fixed in 4.6.1. Thanks to Ali for tracking down a
bug I'd
introduced in the ARM support in the original version of this
change.
Gabe
On 10/31/11 01:19, Gabe Black wrote:
changeset 5fb918115c07 in /z/repo/gem5
details:
http://repo.gem5.org/gem5?cmd=changeset;node=5fb918115c07
description:
GCC: Get everything working with gcc 4.6.1.
And by "everything" I mean all the quick regressions.
diffstat:
src/SConscript | 2 ++
src/arch/alpha/ev5.cc | 7 ++-----
src/arch/alpha/isa/mem.isa | 2 +-
src/arch/arm/isa/formats/fp.isa | 18
++++++++++--------
src/arch/arm/isa/insts/fp.isa | 4 ++--
src/arch/arm/isa/insts/m5ops.isa | 19
+++----------------
src/arch/arm/isa/insts/macromem.isa | 7 ++++---
src/arch/arm/isa/insts/neon.isa | 16 +++++++---------
src/arch/arm/isa/templates/mem.isa | 4 ++--
src/arch/mips/isa/decoder.isa | 8 +++-----
src/arch/mips/isa/formats/mt.isa | 22
++++++----------------
src/arch/mips/isa/includes.isa | 2 ++
src/arch/mips/tlb.cc | 2 --
src/arch/power/isa/formats/mem.isa | 2 +-
src/arch/power/tlb.cc | 2 --
src/arch/sparc/isa/formats/mem/util.isa | 5 ++---
src/arch/x86/isa/microops/base.isa | 3 ++-
src/base/inet.cc | 1 +
src/cpu/base.cc | 3 +--
src/cpu/inorder/cpu.cc | 8 ++------
src/cpu/legiontrace.cc | 2 +-
src/cpu/o3/cpu.cc | 1 -
src/cpu/o3/rename_impl.hh | 16 ++++------------
src/mem/cache/tags/iic.cc | 2 --
src/mem/ruby/network/orion/Clock.cc | 7 -------
src/mem/ruby/system/PersistentTable.hh | 1 +
src/mem/ruby/system/PseudoLRUPolicy.hh | 3 ---
src/python/m5/params.py | 1 +
src/python/swig/pyobject.cc | 4 ----
29 files changed, 60 insertions(+), 114 deletions(-)
diffs (truncated from 695 to 300 lines):
diff -r dd77c8d0a93e -r 5fb918115c07 src/SConscript
--- a/src/SConscript Sun Oct 30 15:57:39 2011 -0500
+++ b/src/SConscript Mon Oct 31 01:09:44 2011 -0700
@@ -851,6 +851,8 @@
swig_env.Append(CCFLAGS='-Wno-uninitialized')
swig_env.Append(CCFLAGS='-Wno-sign-compare')
swig_env.Append(CCFLAGS='-Wno-parentheses')
+ swig_env.Append(CCFLAGS='-Wno-unused-label')
+ swig_env.Append(CCFLAGS='-Wno-unused-but-set-variable')
werror_env = new_env.Clone()
werror_env.Append(CCFLAGS='-Werror')
diff -r dd77c8d0a93e -r 5fb918115c07 src/arch/alpha/ev5.cc
--- a/src/arch/alpha/ev5.cc Sun Oct 30 15:57:39 2011 -0500
+++ b/src/arch/alpha/ev5.cc Mon Oct 31 01:09:44 2011 -0700
@@ -209,8 +209,6 @@
void
ISA::setIpr(int idx, uint64_t val, ThreadContext *tc)
{
- uint64_t old;
-
if (tc->misspeculating())
return;
@@ -262,12 +260,11 @@
case IPR_PALtemp23:
// write entire quad w/ no side-effect
- old = ipr[idx];
- ipr[idx] = val;
#if FULL_SYSTEM
if (tc->getKernelStats())
- tc->getKernelStats()->context(old, val, tc);
+ tc->getKernelStats()->context(ipr[idx], val, tc);
#endif
+ ipr[idx] = val;
break;
case IPR_DTB_PTE:
diff -r dd77c8d0a93e -r 5fb918115c07 src/arch/alpha/isa/mem.isa
--- a/src/arch/alpha/isa/mem.isa Sun Oct 30 15:57:39 2011
-0500
+++ b/src/arch/alpha/isa/mem.isa Mon Oct 31 01:09:44 2011
-0700
@@ -388,7 +388,7 @@
Fault %(class_name)s::execute(%(CPU_exec_context)s *xc,
Trace::InstRecord *traceData)
const
{
- Addr EA;
+ Addr EA M5_VAR_USED;
Fault fault = NoFault;
%(fp_enable_check)s;
diff -r dd77c8d0a93e -r 5fb918115c07
src/arch/arm/isa/formats/fp.isa
--- a/src/arch/arm/isa/formats/fp.isa Sun Oct 30 15:57:39 2011
-0500
+++ b/src/arch/arm/isa/formats/fp.isa Mon Oct 31 01:09:44 2011
-0700
@@ -561,20 +561,22 @@
}
}
case 0xa:
+ if (q)
+ return new Unknown(machInst);
if (b) {
- return decodeNeonUSThreeReg<VpminD, VpminQ>(
- q, u, size, machInst, vd, vn, vm);
+ return decodeNeonUSThreeUSReg<VpminD>(
+ u, size, machInst, vd, vn, vm);
} else {
- return decodeNeonUSThreeReg<VpmaxD, VpmaxQ>(
- q, u, size, machInst, vd, vn, vm);
+ return decodeNeonUSThreeUSReg<VpmaxD>(
+ u, size, machInst, vd, vn, vm);
}
case 0xb:
if (b) {
- if (u) {
+ if (u || q) {
return new Unknown(machInst);
} else {
- return decodeNeonUThreeReg<NVpaddD,
NVpaddQ>(
- q, size, machInst, vd, vn, vm);
+ return decodeNeonUThreeUSReg<NVpaddD>(
+ size, machInst, vd, vn, vm);
}
} else {
if (u) {
@@ -1542,7 +1544,7 @@
else
return new NVswpD<uint64_t>(machInst, vd,
vm);
case 0x1:
- return decodeNeonUTwoMiscReg<NVtrnD, NVtrnQ>(
+ return decodeNeonUTwoMiscSReg<NVtrnD, NVtrnQ>(
q, size, machInst, vd, vm);
case 0x2:
return decodeNeonUTwoMiscReg<NVuzpD, NVuzpQ>(
diff -r dd77c8d0a93e -r 5fb918115c07
src/arch/arm/isa/insts/fp.isa
--- a/src/arch/arm/isa/insts/fp.isa Sun Oct 30 15:57:39 2011
-0500
+++ b/src/arch/arm/isa/insts/fp.isa Mon Oct 31 01:09:44 2011
-0700
@@ -447,7 +447,7 @@
exec_output = ""
singleSimpleCode = vfpEnabledCheckCode + '''
- FPSCR fpscr = (FPSCR) FpscrExc;
+ FPSCR fpscr M5_VAR_USED = (FPSCR) FpscrExc;
FpDest = %(op)s;
'''
singleCode = singleSimpleCode + '''
@@ -457,7 +457,7 @@
"%(func)s, fpscr.fz, fpscr.dn, fpscr.rMode)"
singleUnaryOp = "unaryOp(fpscr, FpOp1, %(func)s, fpscr.fz,
fpscr.rMode)"
doubleCode = vfpEnabledCheckCode + '''
- FPSCR fpscr = (FPSCR) FpscrExc;
+ FPSCR fpscr M5_VAR_USED = (FPSCR) FpscrExc;
double dest = %(op)s;
FpDestP0_uw = dblLow(dest);
FpDestP1_uw = dblHi(dest);
diff -r dd77c8d0a93e -r 5fb918115c07
src/arch/arm/isa/insts/m5ops.isa
--- a/src/arch/arm/isa/insts/m5ops.isa Sun Oct 30
15:57:39
2011
-0500
+++ b/src/arch/arm/isa/insts/m5ops.isa Mon Oct 31
01:09:44
2011
-0700
@@ -54,9 +54,7 @@
armCode = '''
-#if FULL_SYSTEM
PseudoInst::arm(xc->tcBase());
-#endif
'''
armIop = InstObjParams("arm", "Arm", "PredOp",
{ "code": armCode,
@@ -67,9 +65,7 @@
exec_output += PredOpExecute.subst(armIop)
quiesceCode = '''
-#if FULL_SYSTEM
PseudoInst::quiesce(xc->tcBase());
-#endif
'''
quiesceIop = InstObjParams("quiesce", "Quiesce", "PredOp",
{ "code": quiesceCode,
@@ -80,9 +76,7 @@
exec_output += QuiescePredOpExecute.subst(quiesceIop)
quiesceNsCode = '''
-#if FULL_SYSTEM
PseudoInst::quiesceNs(xc->tcBase(), join32to64(R1, R0));
-#endif
'''
quiesceNsIop = InstObjParams("quiesceNs", "QuiesceNs",
"PredOp",
@@ -94,9 +88,7 @@
exec_output += QuiescePredOpExecute.subst(quiesceNsIop)
quiesceCyclesCode = '''
-#if FULL_SYSTEM
PseudoInst::quiesceCycles(xc->tcBase(), join32to64(R1,
R0));
-#endif
'''
quiesceCyclesIop = InstObjParams("quiesceCycles",
"QuiesceCycles",
"PredOp",
@@ -108,11 +100,9 @@
exec_output += QuiescePredOpExecute.subst(quiesceCyclesIop)
quiesceTimeCode = '''
-#if FULL_SYSTEM
uint64_t qt_val = PseudoInst::quiesceTime(xc->tcBase());
R0 = bits(qt_val, 31, 0);
R1 = bits(qt_val, 63, 32);
-#endif
'''
quiesceTimeIop = InstObjParams("quiesceTime",
"QuiesceTime",
"PredOp",
@@ -188,9 +178,7 @@
exec_output += PredOpExecute.subst(m5exitIop)
loadsymbolCode = '''
-#if FULL_SYSTEM
PseudoInst::loadsymbol(xc->tcBase());
-#endif
'''
loadsymbolIop = InstObjParams("loadsymbol", "Loadsymbol",
"PredOp",
@@ -204,6 +192,9 @@
initparamCode = '''
#if FULL_SYSTEM
Rt = PseudoInst::initParam(xc->tcBase());
+#else
+ PseudoInst::panicFsOnlyPseudoInst("initparam");
+ Rt = 0;
#endif
'''
@@ -260,11 +251,9 @@
exec_output += PredOpExecute.subst(m5checkpointIop)
m5readfileCode = '''
-#if FULL_SYSTEM
int n = 4;
uint64_t offset = getArgument(xc->tcBase(), n,
sizeof(uint64_t),
false);
R0 = PseudoInst::readfile(xc->tcBase(), R0,
join32to64(R3,R2),
offset);
-#endif
'''
m5readfileIop = InstObjParams("m5readfile", "M5readfile",
"PredOp",
{ "code": m5readfileCode,
@@ -291,9 +280,7 @@
exec_output += PredOpExecute.subst(m5switchcpuIop)
m5addsymbolCode = '''
-#if FULL_SYSTEM
PseudoInst::addsymbol(xc->tcBase(), join32to64(R1, R0),
R2);
-#endif
'''
m5addsymbolIop = InstObjParams("m5addsymbol",
"M5addsymbol",
"PredOp",
{ "code": m5addsymbolCode,
diff -r dd77c8d0a93e -r 5fb918115c07
src/arch/arm/isa/insts/macromem.isa
--- a/src/arch/arm/isa/insts/macromem.isa Sun Oct 30
15:57:39
2011
-0500
+++ b/src/arch/arm/isa/insts/macromem.isa Mon Oct 31
01:09:44
2011
-0700
@@ -563,15 +563,16 @@
let {{
exec_output = ''
- for type in ('uint8_t', 'uint16_t', 'uint32_t'):
+ for typeSize in (8, 16, 32):
for sRegs in 1, 2:
- for dRegs in range(sRegs, 5):
+ for dRegs in range(sRegs, min(sRegs * 64 / typeSize
+ 1,
5)):
for format in
("MicroUnpackNeon%(sRegs)dto%(dRegs)dUop",
"MicroUnpackAllNeon%(sRegs)dto%(dRegs)dUop",
"MicroPackNeon%(dRegs)dto%(sRegs)dUop"):
Name = format % { "sRegs" : sRegs * 2,
"dRegs" : dRegs * 2 }
- substDict = { "class_name" : Name, "targs"
:
type }
+ substDict = { "class_name" : Name,
+ "targs" : "uint%d_t" %
typeSize }
exec_output +=
MicroNeonExecDeclare.subst(substDict)
}};
diff -r dd77c8d0a93e -r 5fb918115c07
src/arch/arm/isa/insts/neon.isa
--- a/src/arch/arm/isa/insts/neon.isa Sun Oct 30 15:57:39 2011
-0500
+++ b/src/arch/arm/isa/insts/neon.isa Mon Oct 31 01:09:44 2011
-0700
@@ -1619,10 +1619,8 @@
threeEqualRegInst("vadd", "NVaddD", "SimdAddOp",
unsignedTypes, 2,
vaddCode)
threeEqualRegInst("vadd", "NVaddQ", "SimdAddOp",
unsignedTypes, 4,
vaddCode)
- threeEqualRegInst("vpadd", "NVpaddD", "SimdAddOp",
unsignedTypes,
+ threeEqualRegInst("vpadd", "NVpaddD", "SimdAddOp",
smallUnsignedTypes,
2, vaddCode, pairwise=True)
- threeEqualRegInst("vpadd", "NVpaddQ", "SimdAddOp",
unsignedTypes,
- 4, vaddCode, pairwise=True)
vaddlwCode = '''
destElem = (BigElement)srcElem1 + (BigElement)srcElem2;
'''
@@ -2113,11 +2111,9 @@
'''
threeRegLongInst("vmull", "Vmullp", "SimdMultOp",
smallUnsignedTypes, vmullpCode)
- threeEqualRegInst("vpmax", "VpmaxD", "SimdCmpOp", allTypes,
2,
vmaxCode, pairwise=True)
- threeEqualRegInst("vpmax", "VpmaxQ", "SimdCmpOp", allTypes,
4,
vmaxCode, pairwise=True)
+ threeEqualRegInst("vpmax", "VpmaxD", "SimdCmpOp",
smallTypes, 2,
vmaxCode, pairwise=True)
- threeEqualRegInst("vpmin", "VpminD", "SimdCmpOp", allTypes,
2,
vminCode, pairwise=True)
- threeEqualRegInst("vpmin", "VpminQ", "SimdCmpOp", allTypes,
4,
vminCode, pairwise=True)
+ threeEqualRegInst("vpmin", "VpminD", "SimdCmpOp",
smallTypes, 2,
vminCode, pairwise=True)
vqdmulhCode = '''
FPSCR fpscr = (FPSCR) FpscrQc;
@@ -3140,8 +3136,10 @@
destReg.elements[i + 1] = mid;
}
'''
- twoRegMiscScramble("vtrn", "NVtrnD", "SimdAluOp",
unsignedTypes, 2,
vtrnCode)
- twoRegMiscScramble("vtrn", "NVtrnQ", "SimdAluOp",
unsignedTypes, 4,
vtrnCode)
+ twoRegMiscScramble("vtrn", "NVtrnD", "SimdAluOp",
+ smallUnsignedTypes, 2, vtrnCode)
+ twoRegMiscScramble("vtrn", "NVtrnQ", "SimdAluOp",
+ smallUnsignedTypes, 4, vtrnCode)
vuzpCode = '''
Element mid[eCount];
diff -r dd77c8d0a93e -r 5fb918115c07
src/arch/arm/isa/templates/mem.isa
--- a/src/arch/arm/isa/templates/mem.isa Sun Oct 30
15:57:39
2011
-0500
+++ b/src/arch/arm/isa/templates/mem.isa Mon Oct 31
01:09:44
2011
-0700
@@ -1112,7 +1112,7 @@
(IntRegIndex)_index)
{
%(constructor)s;
- bool conditional = false;
+ bool conditional M5_VAR_USED = false;
if (!(condCode == COND_AL || condCode == COND_UC)) {
conditional = true;
for (int x = 0; x < _numDestRegs; x++) {
@@ -1166,7 +1166,7 @@
(IntRegIndex)_dest, (IntRegIndex)_base, _add,
_imm)
{
%(constructor)s;
- bool conditional = false;
+ bool conditional M5_VAR_USED = false;
if (!(condCode == COND_AL || condCode == COND_UC)) {
conditional = true;
for (int x = 0; x < _numDestRegs; x++) {
diff -r dd77c8d0a93e -r 5fb918115c07
src/arch/mips/isa/decoder.isa
--- a/src/arch/mips/isa/decoder.isa Sun Oct 30 15:57:39 2011
-0500
+++ b/src/arch/mips/isa/decoder.isa Mon Oct 31 01:09:44 2011
-0700
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev