diff options
author | Sean Wilson <spwilson2@wisc.edu> | 2017-08-03 11:22:57 -0500 |
---|---|---|
committer | Jason Lowe-Power <jason@lowepower.com> | 2018-08-17 16:37:42 +0000 |
commit | 9d42d34bdf0b3bc529291adf9b843a5c6a2cf847 (patch) | |
tree | 81d334b8db53ba56a23ee4e9aa3005ef9c15be05 /tests/test-progs | |
parent | 27dfbdf9f6d4bc1e2a47cf80698882e5c5157423 (diff) | |
download | gem5-9d42d34bdf0b3bc529291adf9b843a5c6a2cf847.tar.xz |
tests: Add test for the m5-exit instruction.
Change-Id: I92a589b267ce659b6fbcf710043436b84fcb1c63
Signed-off-by: Sean Wilson <spwilson2@wisc.edu>
Reviewed-on: https://gem5-review.googlesource.com/4423
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Diffstat (limited to 'tests/test-progs')
-rw-r--r-- | tests/test-progs/m5-exit/.gitignore | 1 | ||||
-rw-r--r-- | tests/test-progs/m5-exit/src/Makefile.x86 | 28 | ||||
-rw-r--r-- | tests/test-progs/m5-exit/src/m5-exit.c | 19 |
3 files changed, 48 insertions, 0 deletions
diff --git a/tests/test-progs/m5-exit/.gitignore b/tests/test-progs/m5-exit/.gitignore new file mode 100644 index 000000000..fb36b714b --- /dev/null +++ b/tests/test-progs/m5-exit/.gitignore @@ -0,0 +1 @@ +bin/x86 diff --git a/tests/test-progs/m5-exit/src/Makefile.x86 b/tests/test-progs/m5-exit/src/Makefile.x86 new file mode 100644 index 000000000..eba7342ab --- /dev/null +++ b/tests/test-progs/m5-exit/src/Makefile.x86 @@ -0,0 +1,28 @@ +SERVER_USER= +SERVER_PATH=/z/www/htdocs/dist/current/test-progs/m5-exit/bin/x86/linux +FETCH_PATH=http://gem5.org/dist/current/test-progs/m5-exit/bin/x86/linux + +UPLOAD_LOCATION=$(SERVER_USER)daystrom.gem5.org:$(SERVER_PATH) + +M5_UTIL:=${CURDIR}/../../../../util/m5 +M5_INCLUDE:=${CURDIR}/../../../../include/ + +all: m5_exit + +upload: m5_exit + scp m5_exit $(UPLOAD_LOCATION) + +# NOTE: For docker to work, all of the files must be in this directory +m5_exit: m5-exit.c + cp -r $(M5_INCLUDE)/gem5 . + cp $(M5_UTIL)/m5op_x86.S . + ./dockcross-x64 -c '$$CC -I. m5op_x86.S m5-exit.c -o m5_exit -static -DM5' + rm m5op_x86.S + rm -r gem5 + +dockcross-x64: + docker run --rm dockcross/linux-x64 > ./dockcross-x64 + chmod +x ./dockcross-x64 + +clean: + rm -f dockcross-* m5_exit diff --git a/tests/test-progs/m5-exit/src/m5-exit.c b/tests/test-progs/m5-exit/src/m5-exit.c new file mode 100644 index 000000000..fc1b35b55 --- /dev/null +++ b/tests/test-progs/m5-exit/src/m5-exit.c @@ -0,0 +1,19 @@ +#include <stdio.h> + +#ifdef M5 +#include <gem5/m5ops.h> + +// If you need to define this, you should have removed the -DM5OP_ADDR +// when compiling the m5op_x86.o +//void *m5_mem = (void*)0xCAFEBABE; +#endif + +int main() { + #ifdef M5 + m5_exit(0); + #endif + printf("FAIL!\n"); + printf("Program should have exited due to the magic m5_exit" + " instruction!\n"); + return -1; +} |