Gabe Black [Sun, 16 Feb 2020 01:40:40 +0000 (17:40 -0800)]
dev: Delete the authors list from files in src/dev.
Change-Id: I0907a6f1ada3038305c2d83a350a8d435ac657ba
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25403
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Giacomo Travaglini [Wed, 4 Dec 2019 14:38:01 +0000 (14:38 +0000)]
arch-arm: Be more verbose on load/store construction
This is achieved by using keyword arguments to improve readibility.
Some of the building helpers are using native types and can be annoying
for a reader to understand what those sequences of number and boolean
mean. It is also easier in this way to commit mistakes.
Change-Id: I63081d09a1f621550c5b6522b8107f349939b21d
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24044
Tested-by: kokoro <noreply+kokoro@google.com>
Giacomo Travaglini [Fri, 14 Feb 2020 10:24:01 +0000 (10:24 +0000)]
base: Use a int to store fgetc return value
The stdio fgetc returns the character read as an unsigned char cast to
an int.
The reason why it gets casted from unsigned char to int is because EOF
is defined as a negative value (usually -1).
At the moment in the atomicio.test we store the int in a char.
However the C standard states that the sign of a char is implementation
specific. This makes the test non portable: an architecture/ABI which
which is considering a char as a unsigned char won't compile since a
unsigned value will always be != -1 (EOF).
This is the error message you would get on a aarch64 host /w gcc/5.4.0
build/ARM/base/atomicio.test.cc:121:48:
error: comparison is always true due to limited range of data type
[-Werror=type-limits]
Change-Id: I120e44b5204d98e643f19b8dd6fa2762342a6e64
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25384
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Mon, 17 Feb 2020 07:07:25 +0000 (23:07 -0800)]
cpu: Delete authors lists from the cpu directory.
Change-Id: Icfba8e23b5f6820a6ddefe1a50abbe5f8825b7b5
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25444
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Mon, 17 Feb 2020 06:36:41 +0000 (22:36 -0800)]
mem: Delete authors lists from mem files.
Change-Id: I439d64d01950463747446a8177086eb276b8db55
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25443
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Sun, 16 Feb 2020 01:53:50 +0000 (17:53 -0800)]
python: Delete authors lists from the python directory.
Change-Id: Ia147b90016f56a8ddd0c77b15746f74f50aba7e8
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25408
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Sun, 16 Feb 2020 01:49:09 +0000 (17:49 -0800)]
misc: Delete authors lists from proto.
Change-Id: I3ec4f28c82de2f006518ca276f761813d08d7977
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25407
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Sun, 16 Feb 2020 01:47:52 +0000 (17:47 -0800)]
learning-gem5: Delete authors lists from learning_gem5.
Change-Id: I42b6241057dab661aeaad695d48f62f70f163832
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25406
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Sun, 16 Feb 2020 01:44:55 +0000 (17:44 -0800)]
misc: Delete authors lists from documentation related files.
Change-Id: I6cd78336687c2516a90dba7c56154b03a709f791
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25405
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Giacomo Travaglini [Fri, 17 Jan 2020 10:47:27 +0000 (10:47 +0000)]
cpu: Mark ExecContext::tcBase() as const
Change-Id: Ia3965c05a1b00e0a9738ddbccb4dc0b651f78e5e
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24523
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Sun, 16 Feb 2020 03:13:03 +0000 (19:13 -0800)]
misc: Delete authors lists from top level .md files.
Change-Id: Iefa9d6bd3ce0212bb3eb6101a73aeca737df2c1a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25417
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Sun, 16 Feb 2020 03:11:16 +0000 (19:11 -0800)]
config: Delete authors lists from config files.
Change-Id: I049f2e97ad00d76341c2aeeaa02279862a8a4d71
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25416
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Sun, 16 Feb 2020 02:59:38 +0000 (18:59 -0800)]
base: Delete authors lists from files in base.
Change-Id: I73020efd522489ee152af890ab5e03449bc0a900
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25415
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Sun, 16 Feb 2020 02:42:01 +0000 (18:42 -0800)]
gpu-compute: Delete authors lists from gpu-compute files.
Change-Id: I72318eb885f9517de325ea9a9af263f36613bf6e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25414
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Sun, 16 Feb 2020 02:36:34 +0000 (18:36 -0800)]
kern: Delete authors lists from files in kern.
Change-Id: Ic82d0172b61b5b84241edf1112148d7383aade97
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25413
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Sun, 16 Feb 2020 02:34:09 +0000 (18:34 -0800)]
scons: Remove authors from the main SConsctruct/SConscript files.
Change-Id: I48987ea4d829e722caf16126dd82f2c580e7836a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25412
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Sun, 16 Feb 2020 01:55:38 +0000 (17:55 -0800)]
tests: Delete authors lists from the unittest directory.
Change-Id: Id4c7f5ddb932e427cb42d0698b1a048377d027c2
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25409
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Gabe Black [Thu, 23 Jan 2020 05:28:08 +0000 (21:28 -0800)]
alpha: Delete the alpha arch files.
Change-Id: If8f930c77e5f97156b42f68b3f8a538c8f8bf94c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24652
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Thu, 23 Jan 2020 05:27:09 +0000 (21:27 -0800)]
base: Delete alpha loader components.
Change-Id: I228ff95af3fea04f8fb96486d5130abe1ab0228f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24651
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Gabe Black [Thu, 23 Jan 2020 05:21:48 +0000 (21:21 -0800)]
dev: Delete alpha devices.
Change-Id: Idc41e83d94d39e8e45044a64b22b39cb395947c7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24650
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Gabe Black [Thu, 23 Jan 2020 05:20:06 +0000 (21:20 -0800)]
sim: Remove mention of alpha.
Change-Id: Iec6b9284383d380885955438c3693b0d2efc497e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24649
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Gabe Black [Thu, 23 Jan 2020 05:36:09 +0000 (21:36 -0800)]
cpu: Remove alpha specialized code.
Change-Id: I770132af2f11ed232a100ab8bef942f17789ef36
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24648
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Thu, 23 Jan 2020 05:16:29 +0000 (21:16 -0800)]
configs: Remove mentions of alpha from the configs.
Change-Id: I09117b52c0c87679eaa72dbb79545dd1e77732b1
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24647
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Gabe Black [Thu, 23 Jan 2020 05:11:06 +0000 (21:11 -0800)]
system: Delete alpha files from system.
Change-Id: I42b8ea34fb64b6dc7bdf3c09310011cfd989a7d9
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24646
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Gabe Black [Thu, 23 Jan 2020 05:10:03 +0000 (21:10 -0800)]
scons: Delete the ALPHA default build configuration.
Change-Id: Ifbc0b6dd9b85e5a00ab11f16b2703b4ae946207e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24645
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Mon, 10 Feb 2020 20:07:52 +0000 (12:07 -0800)]
misc: Updated git-commit-msg.py to print rejected commit
A rejected commit is now printed to stdout. This adds an additional
level of security if the ".git/COMMIT_EDITMSG" is deleted/overwritten.
Jira: https://gem5.atlassian.net/browse/GEM5-321
Change-Id: I87d463f7c40024d68bf78705f0d02fcea9f0eeeb
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25343
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Wed, 5 Feb 2020 00:19:38 +0000 (16:19 -0800)]
scons,arch: Remove simple scalar compatibility.
This was primarily in Alpha where disassmbly output could be compatible
(default off, probably not usd in a long time), and floating point
could be compatible (default on). A small bit had crept into x86 from
long ago which is also removed.
Change-Id: Ibb68b63787f370259bd1613b393e0b057c007704
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25012
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Wed, 15 Jan 2020 02:19:18 +0000 (18:19 -0800)]
arm: Don't checkpoint the SystemCounter's "_period" value.
This value is just a cached inverse of _freq and can be recalculated
easily once the checkpoint is restored. The actual value of _period
actually depends on the global resolution of time (ie how much time a
Tick represents), and so saving the value of _period is also not
technically correct, even though in practice that will very rarely
cause a problem.
Change-Id: I21e63ba25ac4e189417905e532981f3d80723f19
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24390
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 4 Feb 2020 01:29:26 +0000 (17:29 -0800)]
arm: "Correct" the spelling of flavor.
In US English, flavor is spelled flavor, not flavour. The choice of
US spelling is arbitrary but consistent with gem5's history and the
rest of the code base.
Also fix a couple small style issues.
Change-Id: I307f8458fec5918a6fc34f938a4c12955d4d0565
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25010
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 4 Feb 2020 01:08:18 +0000 (17:08 -0800)]
arch,cpu: Make the CPU's ISA parameter type BaseISA.
This is mostly only a superficial change since the isa parameter is
then dynamic cast to the ISA specific version inside the various
consumers, currently the SimpleThread, O3CPU and Decoder classes. If
those aren't being used, for instance in the fast model CPUs, then you
can use a different ISA implementation without any type clashes.
Change-Id: I2226ef60f9a471ae51b8bfce8683033f7854197a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25009
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Giacomo Travaglini [Wed, 5 Feb 2020 17:18:11 +0000 (17:18 +0000)]
ext: Add failure node to JUnit xml file
"failure" is a child of the testcase node:
https://llg.cubic.org/docs/junit/
It allows xml parsers to understand which testcase failed the run.
Otherwise CI frameworks like jenkins wouldn't be able to classify every
single testcase. Prior to this patch testlib was using
testsuites.failures and testsuite.failures only. These are simply
reporting the number of failures.
Change-Id: I0d498eca029c3232f2a588b153b6b6829b789394
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25083
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Bobby R. Bruce [Tue, 28 Jan 2020 02:43:32 +0000 (18:43 -0800)]
misc: Updated CONTRIBUTING.md to discuss releases and hotfixes
A new section in CONTRIBUTING.md has been added to discuss the
proceedure for how releases are carried out, as well as hotfixes.
Jira: https://gem5.atlassian.net/browse/GEM5-297
Change-Id: I49e7d6e41e8a6d5387c839eb26263e86dd52c294
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24843
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Mon, 27 Jan 2020 23:00:17 +0000 (15:00 -0800)]
misc: Updated CONTRIBUTING.md to discuss WIP changes
Previously CONTRIBUTING.md discused private changes, but contributors
cannot submit private changes to Gerrit under the current configuration.
This has therefore been removed and replaced with an explanation of how
to submit a WIP (Work In Progress) changes to Gerrit. WIP changes are
permitted.
Change-Id: I9e1acbdaf4a9b5c433c0704ba9faf325a6b48c6a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24805
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Mon, 27 Jan 2020 22:18:08 +0000 (14:18 -0800)]
misc: Updated CONTRIBUTING.md for master-as-stable setup
Jira: https://gem5.atlassian.net/browse/GEM5-284
Change-Id: I28c4d658a2e9c3bf11879a7b73e16d167c97398f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24804
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Fri, 24 Jan 2020 20:59:00 +0000 (12:59 -0800)]
misc: Removed old contribution guidelines regarding branches
This is old, outdated information. It has largely been replaced by:
https://gem5-review.googlesource.com/c/public/gem5/+/24263
Change-Id: I2f232cd1b3133f94434f4f12b1206dabaf339899
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24803
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 26 Nov 2019 01:34:55 +0000 (17:34 -0800)]
mem: Eliminate the now unused GENERIC_IPR request flag.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: Id3aaffa4fa88032fd209c5c3b6f67283a6af1c48
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23187
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Reviewed-by: Muhammad Sarmad Saeed <mssaeed@ucdavis.edu>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Gabe Black [Tue, 26 Nov 2019 01:30:22 +0000 (17:30 -0800)]
arch: Get rid of the generic mmapped IPR mechanism.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: I4ab6f80581eee39e90fb91c672eca8e1a8fd9046
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23186
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Gabe Black [Tue, 26 Nov 2019 01:12:12 +0000 (17:12 -0800)]
arm: Call pseudoInst directly from the mmapped IPR handlers.
The amount of plumbing necessary for the generic IPR mechanism out
weighs its value, considering it's only used for the m5ops.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: I0efcf43904d5f779bef5ad127dd8d39fff41ac39
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23185
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Giacomo Travaglini [Thu, 16 Jan 2020 10:01:08 +0000 (10:01 +0000)]
tests,misc: update TESTING.md documentation
* Documentation was assuming only tests in tests/test-progs were run.
This is not true anymore since we are running linux-boot for arm
which doesn't have a directory inside test-progs and because it
is now possible to explicitly specify the bin directory
(--bin-path)
Change-Id: I4cbb02fa1c88839be45302ea64e07792e1fc81f5
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24526
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Sat, 8 Feb 2020 01:27:02 +0000 (17:27 -0800)]
scons: Fix an error about an unrecognized compiler.
join was being passed a series of strings to join as separate
arguments like os.path.join, but it expects to get them as members of a
single sequence.
Change-Id: Id88ce4e9c5400f256a1af6351b4a964af0036b72
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25203
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Daniel R. Carvalho [Sat, 8 Feb 2020 11:38:02 +0000 (12:38 +0100)]
base: Fix squares of stats
If a sample V, which has a square(V) = V * V, was seen N times, then
its sum of squares is given by N * square(V).
Change-Id: Ie3fe0e4afe6e79ba4c8a5a56532f9346f79b4029
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25184
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Mon, 10 Feb 2020 03:30:47 +0000 (19:30 -0800)]
base: Use a const auto & in a range based for loop.
clang 11 complains otherwise which breaks the build, and this way
is less verbose and more efficient since it doesn't require copying
a vector of strings for each element of the loop.
Change-Id: I005fa5fdf19ddba2114e98413e3609b0a91c1ec5
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25226
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Mon, 10 Feb 2020 03:28:21 +0000 (19:28 -0800)]
riscv: Cast to float explicitly when comparing a float to an int.
clang 11 complains that the int value is not represented exactly
otherwise which breaks the build. With this case the comparison is
still the same, but since it's explicit the compiler doesn't warn about
it.
Change-Id: I1d9ffc77e778517d9c6a985ae7aa6c4f1d5b57a2
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25225
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Alec Roelke <alec.roelke@gmail.com>
Maintainer: Alec Roelke <alec.roelke@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Mon, 10 Feb 2020 03:23:27 +0000 (19:23 -0800)]
arm: Fix how a bitfield is extracted in some SVE instructions.
These instructions were extracting a bitfield by masking it, but then
didn't shift the bit into the correct position. They were then
comparing it with 1, which clang 11 correctly complained would always
be false. That warning became an error which broke the build.
This fixes that problem by switching that line and the few surrounding
lines to use the bits() function which removes the need to manually
mask or shift values. That makes it less likely for there to be a
mistake, and also makes it more obvious which bits are being accessed.
Change-Id: I692214f898e90dc7d5de460d1da2ef6aefda4fb8
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25224
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Mon, 10 Feb 2020 01:56:14 +0000 (17:56 -0800)]
arch: Add a bunch of missing override specifiers.
Missing override on methods which are overriding virtual methods causes
warnings/errors on certain compilers.
Change-Id: I16f565fa07bfcb399a0209cd87f1f9729cd89b2e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25223
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Daniel R. Carvalho [Sat, 2 Nov 2019 14:20:00 +0000 (15:20 +0100)]
mem-cache,mem-ruby: Move WeightedLRU RP
Move the WeightedLRUReplacementPolicy to the replacement policies folder.
Change-Id: I9902faefb6de33343bb65f994be70bd9e1dd4e14
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22445
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: John Alsop <johnathan.alsop@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Giacomo Travaglini [Fri, 17 Jan 2020 14:09:18 +0000 (14:09 +0000)]
tests: hello_se using host tag
This patch is rewriting hello_se to distinguish between statically and
dynamically linked hello worlds.
Change-Id: I03c1add1d1ca568d150f4bacd89b2838a6d27035
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24528
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Giacomo Travaglini [Fri, 17 Jan 2020 14:04:47 +0000 (14:04 +0000)]
tests: Add --host tag
A host tag has been added to take into consideration the host ISA which
is running gem5 (default is X86).
There might be regressions which are supposed to be run on a particular
host machine only. This could be the case of dynamically linked
regressions which require dynamic linker/loader + shared libraries of
the same ISA as the target.
Change-Id: I4c4044a4f1b8899f443856340df302df7c1aaf8e
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24527
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Giacomo Travaglini [Thu, 6 Feb 2020 14:34:48 +0000 (14:34 +0000)]
configs: Using VExpress_GEM5_V1 as a default for Options.py
This is replacing deprecated VExpress_EMM for scripts using Options.py,
like fs.py.
Change-Id: I2ba01b248bb9baf49e1f2217d623f3b9bc8a35f9
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25183
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Giacomo Travaglini [Wed, 4 Dec 2019 14:16:47 +0000 (14:16 +0000)]
arch-arm: LDTRSW was not marked as unpriviledged
Change-Id: If0f2b835e40ef011eba884b1dcd81f14531fd1ce
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24043
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Earl Ou [Tue, 4 Feb 2020 03:30:59 +0000 (11:30 +0800)]
systemc: gem5_to_tlm: treat non-rw as ignorable command
Treat all kinds of non read/write requests in gem5_to_tlm bridge as ignorable
commands.
Change-Id: I5236e1b31f9a57470dc666d01cbe96249f48ed5d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25163
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Wed, 27 Nov 2019 09:46:31 +0000 (01:46 -0800)]
arch,sim: Replace setuidFunc with ignoreFunc.
The setuidFunc just ignores the call and warns about it, and that's
what ignoreFunc already does.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: I7655863ed6fe200ff3ac087be3218d49c3c43061
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23194
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Wed, 27 Nov 2019 01:46:37 +0000 (17:46 -0800)]
sim: Convert most of the common syscalls to use the guest ABI.
A couple tricky instances were left alone for now, specifically one
place where the size of the argument is specified explicitly (the
default ABI always leaves off the size), and two places where the
arguments are variadic which is not yet supported.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: I2ec19bea77d329de3575e17e9f7209f4fd871aa6
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23193
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 26 Nov 2019 07:30:26 +0000 (23:30 -0800)]
sim: Use the Guest ABI mechanism in writeFunc.
This change only modifies the writeFunc since it's easy to test using
the hello world test programs.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: Ia4a7bacdb9938d9fbe4093fc6958904d6c423360
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23192
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 26 Nov 2019 07:26:08 +0000 (23:26 -0800)]
arch: Switch SyscallDescABI in for SyscallDesc.
This lets system calls accept arguments by putting them in their
signatures.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: Ieb32b8b5592d894e493466717613ff16e2a03768
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23191
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 26 Nov 2019 07:01:59 +0000 (23:01 -0800)]
sim: Add a transitional syscall ABI which defers to Process.
This change adds a transitional ABI which just falls back to the
existing Process syscall arg getters. It should be phased out once each
ISA implements its own actual ABI.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: Ic40bd924989f91de70bbce59fda888b79bbbfca4
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23190
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 26 Nov 2019 06:22:13 +0000 (22:22 -0800)]
arch: Simplify the SyscallDesc tables.
By using braced initializer lists and dropping the default
unimplementedFunc implementation function, the SyscallDesc tables
become a lot less crowded, and it's now very obvious which syscalls
are implemented just by quickly visually scanning the table.
This will also make it a lot easier to change the underlying type
stored in the table without having to adjust all of the instances
within them.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: I7821de74812e1c02ca4550fc9c46cc2188cf1bd0
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23189
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 26 Nov 2019 01:01:56 +0000 (17:01 -0800)]
x86: Handle m5 op accesses directly in the mmapped IPR handlers.
The common handlers only handle the m5ops, and it takes more plumbing
to get to them than to just handle the m5ops directly from x86.
Also, centralizing the call to PseudoInst::pseudoInst prevents
specializing the ABI per-ISA.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: Ife9cf0d61ac87605ddc9cf9c84feebb8b23cc33a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23184
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 26 Nov 2019 01:00:52 +0000 (17:00 -0800)]
sim: Add a function for decoding the field(s) of an m5op address.
These have at one time included both a func and subfunc, although the
subfunc was unused and is now excluded.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: Ic35ced7a012aa72af5454768f3cbd11b431b061a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23183
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Marjan Fariborz <mfariborz@ucdavis.edu>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Gabe Black [Tue, 26 Nov 2019 00:38:22 +0000 (16:38 -0800)]
x86: Use the m5 op range in the system.
Don't hard code a range into the TLB.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: I0ead4353672ccf6e3e51ddbb4676be3a09f1136a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23182
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Pouya Fotouhi <pfotouhi@ucdavis.edu>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Gabe Black [Tue, 26 Nov 2019 00:25:33 +0000 (16:25 -0800)]
arch,sim: Use _m5opRange in System::allocPhysPages.
This removes the hardcoded assumption that the m5 ops live at the
address they use in x86.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: Ia551d7cf5b08f926c7756541c92a2af9bb73b88a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23181
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 17 Dec 2019 05:48:36 +0000 (21:48 -0800)]
sim: Add a typetraits style mechanism to test for VarArgs.
This family of types can be cumbersome to check for when building
ABI rules. This struct template makes that a little easier.
Change-Id: Ic3a1b8424f8ca04564f8228365371b357f33276c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23750
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Jordi Vaquero [Tue, 7 Jan 2020 11:25:49 +0000 (12:25 +0100)]
arch-arm: Implement ARMv8.3-JSConv
This commit implements Armv8 javascript float point convertion instructions
VJVCT and FJCVTZS.
Change-Id: I1b24839daef775bbb1eb9da5f32c4bb3843e0b28
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25023
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Jordi Vaquero [Tue, 4 Feb 2020 16:37:37 +0000 (17:37 +0100)]
arch-arm: This commit adds Pointer Authentication feature.
+ ArmISA.py: Enabling the feature adding QARMA algorithm as default.
+ faults.cc/faults.hh: Add PACTrapFault
+ includes/insts.isa: Adding new isa files.
+ aarch64.isa: Add decode part for PAC instructions
+ pauth.isa: Isa for PAC instructions
+ misc64.isa: PAC instructions templates
+ miscregs.cc/hh/types: New Registers for PAC Key low/high.
+ types.hh: Modification of system registers that were incomplete
for ARMv8
+ utility.hh: Add isSecureEL2 enabled. The function is there but will
always return false for now.
+ pauth_helpers.hh/cc: Implementation of auxiliar functions and derivates.
+ qarma.hh/cc: This functions follow ARMv8 reference pseudo code
implementing QARMA block cipher algorithms.
Change-Id: I3095a1279204206d9a816a4fb7fc176c18f9680b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25024
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Giacomo Travaglini [Tue, 4 Feb 2020 09:35:20 +0000 (09:35 +0000)]
tests: Move old quick regressions back into their original set
realview64-simple-atomic and realview64-simple-timing had been moved
to the long list by:
https://gem5-review.googlesource.com/c/public/gem5/+/22686
in order to reduce computation time.
Since the timeout has been increased on kokoro we can safely put them
back where they were
Change-Id: Ib86f02b8ef493f450509b9f826a80faaec9ef579
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25025
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 17 Dec 2019 05:28:40 +0000 (21:28 -0800)]
sim: Make it possible for a GuestABI to init its Position based on a TC.
It may be necessary to initialize the GuestABI Position type based on
the current state of the thread, for instance by reading the current
stack pointer.
This change makes it possible (but not mandantory) for an ABI to supply
a constructor for Position which accepts a ThreadContext * which it can
use to intiialize itself.
Change-Id: I5609b185f746368c5f9eb2a04074dcafa088f925
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23749
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Tue, 14 Jan 2020 01:00:41 +0000 (17:00 -0800)]
fastmodel: Ensure unset vec reg bits are zero/false.
These bits won't be overwritten with values from IRIS, and so we should
make sure they're cleared and don't have old values or junk.
Change-Id: Ib81780ab523f00d6a4d31841d68a3d83924982a9
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24327
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Wed, 13 Nov 2019 00:52:05 +0000 (16:52 -0800)]
fastmodel: Implement flattened int reg reading and writing.
Because the fast models (or at least the one we've looked at) give
access to the integer registers mostly based on the current view of
those registers, it does its own flattening and prevents accessing most
of the raw storage locations without this extra level of mapping. To
store to the flattened locations, we need to unflatten the indexes and
in one case shift the mode so that we get the right values.
Some registers which have irrelevant values for fast model (the "PC"
which is actually diverted elsewhere, the zero register, microcode
registers, and the "dummy" register), and those are left out of the
mapping so that they return 0 and blow up gem5 when someone attempts to
set them.
Change-Id: Ia2d315d5ca4c8a65b17ad52beff3a366ca8b3d46
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23791
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Chun-Chen TK Hsu <chunchenhsu@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Nils Asmussen [Thu, 30 Jan 2020 09:42:23 +0000 (10:42 +0100)]
arch-arm: make MicroUopSetPCCPSR SerializeAfter
Updating CPSR needs to be SerializeAfter to ensure that all following
instructions are executed with the new CPSR. Otherwise, for example,
the following instructions will access the banked registers from the
previous mode.
The missing IsSerializeAfter had the consequence that the instruction
rfe (return from exception) did not work correctly with the DerivO3CPU
model.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-303
Change-Id: I999623c0fc92cfcd4c3550b9cb34e8564a92e3e6
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24943
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
(cherry picked from commit
0d665d4f9893320db4f3b5f7014a6e10c3420b69)
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25013
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Gabe Black [Tue, 4 Feb 2020 00:36:04 +0000 (16:36 -0800)]
cpu: Make getIsaPtr return a BaseISA pointer.
This isolates the architecture specific ISA types a little bit, and
means that ThreadContexts don't *have* to find an architecture specific
class to return, even if they don't naturally have one lying around.
Change-Id: Ide10b5d945ec6076947b2ccdea87c86e96e40857
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25008
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Gabe Black [Tue, 4 Feb 2020 00:06:38 +0000 (16:06 -0800)]
arch: Introduce a base class for ISA classes.
These don't have anything in them at the moment since making some ISA
methods virtual and not inlined will likely add overhead, specifically
the ones for flattening registers. Some code may need to be rearranged
to minimize that overhead before the ISA objects can be truly put
behind a generic interface.
Change-Id: Ie36a771e977535a7996fdff701ce202bb95c8c58
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25007
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Gabe Black [Sun, 2 Feb 2020 23:27:41 +0000 (15:27 -0800)]
arm: Use static_cast to get access the ARM specific ISA functions.
Change-Id: I8d237fa60c0fc17c97ed351afd0fa3c623262f0d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25006
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Adrian Herrera [Thu, 7 Nov 2019 12:30:08 +0000 (12:30 +0000)]
arch-arm: AArch64 reg access HCR_EL2.E2H filter
Some AArch64 system registers report UNDEFINED behaviours if accessed
from EL2 or EL3 in a non-EL2 Host enabled (HCR_EL2.E2H == 0) environment.
Examples of these are seen in the Generic Timer system registers,
namely CNTP_CTL_EL02 or CNTKCTL_EL12.
This patch provides an ISA filter for specifying the above condition.
Change-Id: I240f9afdb000faf5d3c9274ba12bd4cc41fe8604
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24664
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Adrian Herrera [Wed, 6 Nov 2019 13:00:21 +0000 (13:00 +0000)]
arch-arm: reg access permissions highest EL helper
This patch implements a helper function to filter a register access
permissions by the highest EL implemented by the system.
This filtering is convenient to follow the architecture pseudocode.
Change-Id: Iedfb2d8624c926f2f0a9326f8b1b073ea9424ab9
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24663
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Giacomo Travaglini [Mon, 3 Feb 2020 10:17:34 +0000 (10:17 +0000)]
arch-arm: Split translateFs to distinguish when MMU is on/off
This patch is splitting the big translateFs method so that it is
using different methods when the MMU is on/off
Change-Id: I198851bdbedf8a8e69730693ff87ffb9ed535ea3
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24985
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Thu, 30 Jan 2020 00:49:40 +0000 (16:49 -0800)]
arch,sim: Merge initCPU into the ISA System classes.
Those classes are already ISA specific, so we can just move initCPU's
contents there and take it out of utility.hh, utility.cc, and the base
System's initState.
Change-Id: I28f0d0b50d83efe5116b0b24d20f8182a02823e7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24905
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Wed, 29 Jan 2020 23:41:59 +0000 (15:41 -0800)]
arch,sim: Merge initCPU and startupCPU.
These two functions were called in exactly one place one right after
the other, and served similar purposes.
This change merges them together, and cleans them up slightly. It also
removes checks for FullSystem, since those functions are only called
in full system to begin with.
Change-Id: I214f7d2d3f88960dccb5895c1241f61cd78716a8
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24904
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Wed, 29 Jan 2020 11:22:05 +0000 (03:22 -0800)]
sim,cpu: Move the call to initCPU into System.
The call to initCPU was moved into initState in the base CPU class
since it should only really be called when starting a simulation
fresh. Otherwise checkpointed state will be loaded over the state of
the CPU anyway, so there's no reason to set up anything else.
Unfortunately that made it possible for the System level initialization
and the CPU initialization to happen out of order, effectively letting
initCPU clobber the state the System might have set up to prepare for
executing a kernel for instance.
To work around that issue, the call was moved to init which would
necessarily happen before initState, restoring the original ordering.
This change moves the change *back* into initState, but of the System
class instead of the CPU class. This makes it possible to guarantee
that OS initialization happens after initCPU since that's also done
by System subclasses, and they control when they call initCPU of the
base class.
This also slightly simmplifies when initCPU is called since we
shouldn't need to check whether a context is switched out or not. If
it's registered with the System object, then it should be in a
currently swapped in CPU.
This also puts the initCPU and startupCPU calls right next to each
other. A future change will take advantage of that and merge the
calls together.
Also, because there are already ISA specific subclasses of System
which already have specialized versions of initState, we should be
able to move the code in initCPU and startupCPU directly into those
subclasses. That will give those subclasses more flexibilty if, for
instance, they want all CPUs to start running in the BIOS like they
would on a real system, or if they want only the BSP to be active
as if the BIOS had already paused the APs before passing control to
a bootloader or OS.
This will also remove another two TheISA:: style functions, reducing
the number of global dependencies on a single ISA.
Change-Id: Ic56924660a5b575a07844a198f69a0e7fa212b52
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24903
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Thu, 30 Jan 2020 07:49:32 +0000 (23:49 -0800)]
arch,base,cpu: Add some default constructors/operators explicitly.
Having them implicitly is apparently deprecated and throws a warning
in gcc 9, breaking the build.
Change-Id: Id4e3074966d1ffc6dd1aed9397de5eea84400027
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24926
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Thu, 30 Jan 2020 07:47:53 +0000 (23:47 -0800)]
base: Delete an inet.hh accessor which is unused and makes gcc 9 upset.
This accessor will return a pointer to an unaligned uint32_t. Since
it's not used and it's not clear how to fix it trivially, this change
just deletes it.
Change-Id: I08bc62276d639cc728411f3a8a23be385000ebab
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24925
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Thu, 30 Jan 2020 07:47:03 +0000 (23:47 -0800)]
scons: Disable spurious "array-bounds" warnings for protobuf cc files.
These files are generated and so, even if they're wrong, there isn't
anything we can do about it.
Change-Id: I933057a04f09dd1c22b525a102278bbdc5fbc22b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24924
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Thu, 30 Jan 2020 07:44:54 +0000 (23:44 -0800)]
scons: Add a mechanism to append flags when building particular files.
This could be used to tweak settings for a particular file if it needed
special treatment. I plan to use this for protobuf files which generate
code that produce a warning in gcc 9 which turns into an error.
Change-Id: I53e2dac48cd68f0cc8ad9031d8484c5036d6e4a6
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24923
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Ciro Santilli [Tue, 29 Oct 2019 14:18:24 +0000 (14:18 +0000)]
configs: allow fs.py and fs_bigLITTLE.py to work without M5_PATH
The requirement to have an environment variable exported to run a program
is not common, and many new users trip up on it.
Before this commit, M5_PATH was a requirement to run those scripts, or
else simulation would fail with:
IOError: Can't find a path to system files.
After this patch, as long as users indicate all required files with
command line options, M5_PATH is not needed.
This patch changes the M5_PATH semantics slightly to more closely match
PATH and so be more intuitive to users: after this commit, if the
given path contains a slash /, then the path is not searched for inside
M5_PATH, which is exactly how PATH works. Users can then select images
in the CWD with a leading ./ just as done for executables.
This is backwards incompatible if users were already specifying their paths
as ./, but this interface feels saner, because otherwise writing on the CLI
e.g.:
--disk-image path/to/my.disk
would previously fail to find the disk, even if it existed, which is very
counter-intuitive. The following will still fail however:
--disk-image my.disk
which is not ideal, but for now is a comprise between backwards
compatibility of having an M5_PATH and what users expect from CLI
interfaces.
Change-Id: Ic91e1cc20557b35b69490b6dc420e7d324fae1fc
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23672
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Ciro Santilli [Tue, 29 Oct 2019 16:00:24 +0000 (16:00 +0000)]
configs: fs.py can take multiple disk images on most ISAs
All ISAs except SPARC can now take multiple disk images by passing
the --disk-image option multiple times.
Before this patch, several ISAs automatically mounted a secondary disk
called "linux-bigswap2.img", which had to be in M5_PATH even if the end
user did not want more than one disk. This was the case for for example
for X86 but not ARM.
This change was done to:
* allow ARM to have a second disk image in fs.py, which was not possible,
and allow other ISAs like X86 and ARM to take any number of disk images
* provide a simpler, more intuitive CLI interface that does not require
magic disk images to be present in M5_PATH to work for ISAs such as X86.
Linux does not need that secondary image to boot correctly, so it is
more friendly to support a minimal setup that requires the least amount
of binaries to boot, and let supply the second image manually only if
they need it.
* make fs.py --disk-image work more similarly across all ISAs
SPARC was left with a single disk only because its setup was a bit more
complex and would require further testing.
Change-Id: I8b6e08ae6daf0a5b6cd1d57d285a9677f01eb7ad
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23671
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Ciro Santilli [Mon, 18 Nov 2019 15:30:49 +0000 (15:30 +0000)]
config: add --bootloader to fs.py and fs_bigLITTLE.py
This allows explicitly selecting which bootloader to use.
Before this commit, the bootloader had a fixed basename which
had to be present inside M5_PATH.
Change-Id: I02919207d6f175854017ae7b603d811da63d618e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23670
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Ciro Santilli [Tue, 29 Oct 2019 13:48:19 +0000 (13:48 +0000)]
dev-arm: add boot_loader param to RealView setupBootLoader
This serves as a basis to select different bootloaders at runtime in
future commits.
Change-Id: I2ad0006fae9ad38ec1a6b1f11063be955a4dd2ea
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23669
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Gabe Black [Thu, 30 Jan 2020 07:50:25 +0000 (23:50 -0800)]
mem: Make slicc generate some default methods explicitly.
Implicitly using the default copy constructor and assignment operator
is apparently deprecated, and gcc 9 will warn about it, breaking the
build.
Change-Id: Ida7a8a577e9d1cde9841eac7eee1af74563f1e27
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24927
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com>
Reviewed-by: John Alsop <johnathan.alsop@amd.com>
Maintainer: Bradford Beckmann <brad.beckmann@amd.com>
Bobby R. Bruce [Fri, 17 Jan 2020 07:48:12 +0000 (23:48 -0800)]
misc: Updated old gem5 website URLs with new gem5 website URLs
Jira: https://gem5.atlassian.net/browse/GEM5-272
Change-Id: Ieadb6dd7a44dde4b0be647c91896551822b06a57
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24503
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Ayaz Akram [Wed, 29 Jan 2020 00:22:03 +0000 (16:22 -0800)]
cpu: move initCPU calls from initState to init
This commit moves the initCPU calls from initState to init
of base cpu (which were added in commit
0b8d02dec492215aa).
This is a temporary fix to solve the problem of X86System
initState getting called before initState of base cpu.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-292
Change-Id: I7434cd811536175562cfa2646f4326907fadad8c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24884
Reviewed-by: Gabe Black <gabeblack@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Adrian Herrera [Thu, 5 Dec 2019 15:50:59 +0000 (15:50 +0000)]
system-arm: AArch64 boot, init CNTFRQ_EL0
CNTFRQ_EL0 should be initialised to a uniform value in all cores present
in the system. Previously, this was only done if EL3 was present,
however architecture states CNTFRQ_EL0 may be written from the highest
EL implemented.
This patch moves this initilization outside of the EL3-only one.
Change-Id: Ibaa197de53d531ba898e5137ba4f46a8c9554699
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24683
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Wed, 11 Dec 2019 05:48:26 +0000 (21:48 -0800)]
sim: Add a GuestABI mechanism to allocate space for a return value.
Some ABIs (including 32 bit ARM, 64 bit x86) allocate their argument
registers differently depending on their return value. For instance,
if the value needs to be returned in memory because it's too big,
the caller could pass a pointer to where the result should be stored
when the function returns. This pointer acts like an invisible first
argument, offsetting where all the normal arguments actually live.
This change adds a mechanism to handle that case. The Result templates
can now declare an allocate() static method which is given a
ThreadContext *, and a reference to the Position object. It can perform
any adjustment it needs to before the normal argument extraction
starts.
Change-Id: Ibda9095f0e8c9882742d24f5effe309ccb514188
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23747
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Bobby R. Bruce [Tue, 14 Jan 2020 19:57:41 +0000 (11:57 -0800)]
tests: Removed 70.twolf tests
In an effort to cleanup the old tests, and migrate useful tests to be
executed via `test/main.py`, it has been decided that the
`test/quick/70.twolf` tests should be removed.
Jira: https://gem5.atlassian.net/browse/GEM5-109
Change-Id: I19f2e20298e14a92f49adf0b8369e1fa09e0c1bc
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24383
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Tue, 14 Jan 2020 00:24:07 +0000 (16:24 -0800)]
tests: Removed old quick/se/00.hello test resources
Change-Id: I0579e2b7a131c679fd7488457595f046702d64ef
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24326
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Tue, 14 Jan 2020 20:41:01 +0000 (12:41 -0800)]
tests: Removed the old ALPHA tests
Jira: https://gem5.atlassian.net/browse/GEM5-109
Change-Id: Id24c84c70d977f7dbd2815b862af9b7eab638aca
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24388
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Tue, 14 Jan 2020 20:25:56 +0000 (12:25 -0800)]
tests: Removed 50.vortex tests
In an effort to cleanup the old tests, and migrate useful tests to be
executed via `test/main.py`, it has been decided that the
`test/long/se/50.vortex` tests should be removed.
Jira: https://gem5.atlassian.net/browse/GEM5-109
Change-Id: I9c40ca74aad11a80bd2a91bd67c9561ffa76e78f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24387
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Tue, 14 Jan 2020 20:13:24 +0000 (12:13 -0800)]
tests: Removed 60.bzip2 tests
In an effort to cleanup the old tests, and migrate useful tests to be
executed via `test/main.py`, it has been decided that the
`test/quick/60.bzip2` tests should be removed.
Jira: https://gem5.atlassian.net/browse/GEM5-109
Change-Id: I8469814a2f4715655960b9049182e426e10380ed
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24385
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Tue, 14 Jan 2020 20:22:53 +0000 (12:22 -0800)]
tests: Removed 30.eon tests
In an effort to cleanup the old tests, and migrate useful tests to be
executed via `test/main.py`, it has been decided that the
`test/long/se/30.eon` tests should be removed.
Jira: https://gem5.atlassian.net/browse/GEM5-109
Change-Id: Ieb32196a5f0ed3b3375ede5aec6f8fb8d162a865
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24386
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Tue, 14 Jan 2020 20:18:36 +0000 (12:18 -0800)]
tests: Removed 40.perlbmk tests
In an effort to cleanup the old tests, and migrate useful tests to be
executed via `test/main.py`, it has been decided that the
`test/long/se/40.perlbmk` tests should be removed.
Jira: https://gem5.atlassian.net/browse/GEM5-109
Change-Id: I3c7ea79717c90acf0656f30b878eb3f9f33fdb70
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24403
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Bobby R. Bruce [Tue, 14 Jan 2020 20:06:35 +0000 (12:06 -0800)]
tests: Removed 20.parser tests
In an effort to cleanup the old tests, and migrate useful tests to be
executed via `test/main.py`, it has been decided that the
`test/long/se/70.twolf` tests should be removed.
Jira: https://gem5.atlassian.net/browse/GEM5-109
Change-Id: Ie0c0cd310ee51a37e80a84af3bf1cb603061da7c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24384
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Gabe Black [Thu, 23 Jan 2020 04:29:36 +0000 (20:29 -0800)]
cpu: Fix ExeTraceRecord::traceInst.
A recent-ish change modified ExeTraceRecord::traceInst to make it more
consistent with DPRINTF-s by using dprintf_flag to print the trace
string. The generated string was passed as the format however, and that
means that all % characters in the output (from register names, for
example) are interpreted as format characters, mangling the output and
making cprintf angry since there are no corresponding arguments.
This change sets the format to "%s" instead, and passes the trace
string as the first argument. The argument won't be parsed for format
specifiers, and so should no longer get mangled.
Change-Id: I8fa9c2c22179a5b55104a618a4af4080a3931c5f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24643
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>