From 15613161c28591ca1a40d019a1568f01d68d5743 Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Sat, 1 Nov 2003 13:20:44 -0500 Subject: Commit a command for use inside a simulated system for communicating with the simulator. This program is generally compiled as the name m5 and installed in /usr/local/bin This command uses opcodes that are invalid on a normal system, so don't expect it to do anything on a real system. --HG-- extra : convert_revision : fcbae99d4b0d38ff4a9950f1ab53923baa1f667a --- util/m5/m5op.s | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 util/m5/m5op.s (limited to 'util/m5/m5op.s') diff --git a/util/m5/m5op.s b/util/m5/m5op.s new file mode 100644 index 000000000..fb92bfb9a --- /dev/null +++ b/util/m5/m5op.s @@ -0,0 +1,66 @@ +#include +#include + +#define m5_op 0x01 +#define arm_func 0x00 +#define quiesce_func 0x01 +#define ivlb_func 0x10 +#define ivle_func 0x11 +#define m5exit_func 0x20 +#define initparam_func 0x30 +#define resetstats_func 0x40 + +#define INST(op, ra, rb, func) \ + .long (((op) << 26) | ((ra) << 21) | ((rb) << 16) | (func)) + +#define ARM(reg) INST(m5_op, reg, 0, arm_func) +#define QUIESCE() INST(m5_op, 0, 0, quiesce_func) +#define IVLB(reg) INST(m5_op, reg, 0, ivlb_func) +#define IVLE(reg) INST(m5_op, reg, 0, ivle_func) +#define M5_EXIT() INST(m5_op, 0, 0, m5exit_func) +#define INITPARAM(reg) INST(m5_op, reg, 0, initparam_func) +#define RESETSTATS() INST(m5_op, 0, 0, resetstats_func) + + .set noreorder + + .align 4 +LEAF(arm) + ARM(16) + RET +END(arm) + + .align 4 +LEAF(quiesce) + QUIESCE() + RET +END(quiesce) + + .align 4 +LEAF(ivlb) + IVLB(16) + RET +END(ivlb) + + .align 4 +LEAF(ivle) + IVLE(16) + RET +END(ivle) + + .align 4 +LEAF(m5exit) + M5_EXIT() + RET +END(m5exit) + + .align 4 +LEAF(initparam) + INITPARAM(0) + RET +END(initparam) + + .align 4 +LEAF(resetstats) + RESETSTATS() + RET +END(resetstats) \ No newline at end of file -- cgit v1.2.3