diff options
author | Nathan Binkert <binkertn@umich.edu> | 2003-11-01 13:20:44 -0500 |
---|---|---|
committer | Nathan Binkert <binkertn@umich.edu> | 2003-11-01 13:20:44 -0500 |
commit | 15613161c28591ca1a40d019a1568f01d68d5743 (patch) | |
tree | d8295505ea60b4138349f9ab026a8b26fd491b99 /util/m5/m5op.s | |
parent | 166def1f5663bda1766b003fab4c46bc905fdb8d (diff) | |
download | gem5-15613161c28591ca1a40d019a1568f01d68d5743.tar.xz |
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
Diffstat (limited to 'util/m5/m5op.s')
-rw-r--r-- | util/m5/m5op.s | 66 |
1 files changed, 66 insertions, 0 deletions
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 <machine/asm.h> +#include <regdef.h> + +#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 |