m5op_alpha.S revision 275
1#include <machine/asm.h>
2#include <regdef.h>
3
4#define m5_op 0x01
5#define arm_func 0x00
6#define quiesce_func 0x01
7#define ivlb_func 0x10
8#define ivle_func 0x11
9#define m5exit_func 0x20
10#define initparam_func 0x30
11#define resetstats_func 0x40
12
13#define INST(op, ra, rb, func) \
14	.long (((op) << 26) | ((ra) << 21) | ((rb) << 16) | (func))
15
16#define	ARM(reg) INST(m5_op, reg, 0, arm_func)
17#define QUIESCE() INST(m5_op, 0, 0, quiesce_func)
18#define IVLB(reg) INST(m5_op, reg, 0, ivlb_func)
19#define IVLE(reg) INST(m5_op, reg, 0, ivle_func)
20#define M5_EXIT() INST(m5_op, 0, 0, m5exit_func)
21#define INITPARAM(reg) INST(m5_op, reg, 0, initparam_func)
22#define RESETSTATS() INST(m5_op, 0, 0, resetstats_func)
23
24	.set noreorder
25
26	.align 4
27LEAF(arm)
28	ARM(16)
29	RET
30END(arm)
31
32	.align 4
33LEAF(quiesce)
34	QUIESCE()
35	RET
36END(quiesce)
37
38	.align 4
39LEAF(ivlb)
40	IVLB(16)
41	RET
42END(ivlb)
43
44	.align 4
45LEAF(ivle)
46	IVLE(16)
47	RET
48END(ivle)
49
50	.align 4
51LEAF(m5exit)
52	M5_EXIT()
53	RET
54END(m5exit)
55
56    .align 4
57LEAF(initparam)
58    INITPARAM(0)
59    RET
60END(initparam)
61
62    .align 4
63LEAF(resetstats)
64    RESETSTATS()
65    RET
66END(resetstats)