diff --git a/tests/gem5/m5_util/test_exit.py b/tests/gem5/m5_util/test_exit.py
new file mode 100644
index 0000000..f5292b1
--- /dev/null
+++ b/tests/gem5/m5_util/test_exit.py
@@ -0,0 +1,50 @@
+# Copyright (c) 2017 Mark D. Hill and David A. Wood
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Authors: Sean Wilson
+
+'''
+Test file for the util m5 exit assembly instruction.
+'''
+import re
+import os
+from testlib import *
+
+m5_exit_regex = re.compile(
+r'Exiting @ tick \d* because m5_exit instruction encountered'
+)
+
+test_program = DownloadedProgram('m5-exit/bin/x86/linux/', 'm5_exit')
+
+a = verifier.MatchRegex(m5_exit_regex)
+gem5_verify_config(
+    name='m5_exit_test',
+    verifiers=[a],
+    fixtures=(test_program,),
+    config=os.path.join(config.base_dir, 'configs', 'example','se.py'),
+    config_args=['--cmd', test_program.path],
+    valid_isas=('X86',)
+)
diff --git a/tests/test-progs/m5-exit/.gitignore b/tests/test-progs/m5-exit/.gitignore
new file mode 100644
index 0000000..fb36b71
--- /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 0000000..eba7342
--- /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 0000000..fc1b35b
--- /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;
+}
diff --git a/util/m5/Makefile.x86 b/util/m5/Makefile.x86
index 890e4b1..f56b37c 100644
--- a/util/m5/Makefile.x86
+++ b/util/m5/Makefile.x86
@@ -31,7 +31,7 @@
 AS=as
 LD=ld
 
-CFLAGS=-O2 -DM5OP_ADDR=0xFFFF0000 -I$(PWD)/../../include
+CFLAGS?=-O2 -DM5OP_ADDR=0xFFFF0000 -I$(PWD)/../../include
 OBJS=m5.o m5op_x86.o m5_mmap.o
 LUA_HEADER_INCLUDE=$(shell pkg-config --cflags-only-I lua51)
 LUA_OBJS=lua_gem5Op.opic m5op_x86.opic m5_mmap.opic
