CPA: Add m5ops for critical path annotation work.
This commit is contained in:
parent
894925f135
commit
d5ef9ee06b
3 changed files with 77 additions and 3 deletions
|
@ -53,7 +53,27 @@ void m5_debugbreak(void);
|
||||||
void m5_switchcpu(void);
|
void m5_switchcpu(void);
|
||||||
void m5_addsymbol(uint64_t addr, char *symbol);
|
void m5_addsymbol(uint64_t addr, char *symbol);
|
||||||
void m5_panic(void);
|
void m5_panic(void);
|
||||||
void m5_anbegin(uint64_t s);
|
|
||||||
void m5_anwait(uint64_t s, uint64_t w);
|
// These operations are for critical path annotation
|
||||||
|
void m5a_bsm(char *sm, const void *id, int flags);
|
||||||
|
void m5a_esm(char *sm);
|
||||||
|
void m5a_begin(int flags, char *st);
|
||||||
|
void m5a_end(void);
|
||||||
|
void m5a_q(const void *id, char *q, int count);
|
||||||
|
void m5a_dq(const void *id, char *q, int count);
|
||||||
|
void m5a_wf(const void *id, char *q, char *sm, int count);
|
||||||
|
void m5a_we(const void *id, char *q, char *sm, int count);
|
||||||
|
void m5a_ws(const void *id, char *q, char *sm);
|
||||||
|
void m5a_sq(const void *id, char *q, int count, int flags);
|
||||||
|
void m5a_aq(const void *id, char *q, int count);
|
||||||
|
void m5a_pq(const void *id, char *q, int count);
|
||||||
|
void m5a_l(char *lsm, const void *id, char *sm);
|
||||||
|
void m5a_identify(uint64_t id);
|
||||||
|
uint64_t m5a_getid(void);
|
||||||
|
|
||||||
|
#define M5_AN_FL_NONE 0x0
|
||||||
|
#define M5_AN_FL_BAD 0x2
|
||||||
|
#define M5_AN_FL_LINK 0x10
|
||||||
|
#define M5_AN_FL_RESET 0x20
|
||||||
|
|
||||||
#endif // __M5OP_H__
|
#endif // __M5OP_H__
|
||||||
|
|
|
@ -74,6 +74,24 @@ func:
|
||||||
#define ADDSYMBOL(r1,r2) INST(m5_op, r1, r2, addsymbol_func)
|
#define ADDSYMBOL(r1,r2) INST(m5_op, r1, r2, addsymbol_func)
|
||||||
#define PANIC INST(m5_op, 0, 0, panic_func)
|
#define PANIC INST(m5_op, 0, 0, panic_func)
|
||||||
|
|
||||||
|
#define AN_BSM INST(m5_op, an_bsm, 0, annotate_func)
|
||||||
|
#define AN_ESM INST(m5_op, an_esm, 0, annotate_func)
|
||||||
|
#define AN_BEGIN INST(m5_op, an_begin, 0, annotate_func)
|
||||||
|
#define AN_END INST(m5_op, an_end, 0, annotate_func)
|
||||||
|
#define AN_Q INST(m5_op, an_q, 0, annotate_func)
|
||||||
|
#define AN_RQ INST(m5_op, an_rq, 0, annotate_func)
|
||||||
|
#define AN_DQ INST(m5_op, an_dq, 0, annotate_func)
|
||||||
|
#define AN_WF INST(m5_op, an_wf, 0, annotate_func)
|
||||||
|
#define AN_WE INST(m5_op, an_we, 0, annotate_func)
|
||||||
|
#define AN_WS INST(m5_op, an_ws, 0, annotate_func)
|
||||||
|
#define AN_SQ INST(m5_op, an_sq, 0, annotate_func)
|
||||||
|
#define AN_AQ INST(m5_op, an_aq, 0, annotate_func)
|
||||||
|
#define AN_PQ INST(m5_op, an_pq, 0, annotate_func)
|
||||||
|
#define AN_L INST(m5_op, an_l, 0, annotate_func)
|
||||||
|
#define AN_IDENTIFY INST(m5_op, an_identify, 0, annotate_func)
|
||||||
|
#define AN_GETID INST(m5_op, an_getid, 0, annotate_func)
|
||||||
|
|
||||||
|
|
||||||
.set noreorder
|
.set noreorder
|
||||||
|
|
||||||
SIMPLE_OP(arm, ARM(16))
|
SIMPLE_OP(arm, ARM(16))
|
||||||
|
@ -96,3 +114,20 @@ SIMPLE_OP(m5_switchcpu, SWITCHCPU)
|
||||||
SIMPLE_OP(m5_addsymbol, ADDSYMBOL(16, 17))
|
SIMPLE_OP(m5_addsymbol, ADDSYMBOL(16, 17))
|
||||||
SIMPLE_OP(m5_panic, PANIC)
|
SIMPLE_OP(m5_panic, PANIC)
|
||||||
|
|
||||||
|
SIMPLE_OP(m5a_bsm, AN_BSM)
|
||||||
|
SIMPLE_OP(m5a_esm, AN_ESM)
|
||||||
|
SIMPLE_OP(m5a_begin, AN_BEGIN)
|
||||||
|
SIMPLE_OP(m5a_end, AN_END)
|
||||||
|
SIMPLE_OP(m5a_q, AN_Q)
|
||||||
|
SIMPLE_OP(m5a_rq, AN_RQ)
|
||||||
|
SIMPLE_OP(m5a_dq, AN_DQ)
|
||||||
|
SIMPLE_OP(m5a_wf, AN_WF)
|
||||||
|
SIMPLE_OP(m5a_we, AN_WE)
|
||||||
|
SIMPLE_OP(m5a_ws, AN_WS)
|
||||||
|
SIMPLE_OP(m5a_sq, AN_SQ)
|
||||||
|
SIMPLE_OP(m5a_aq, AN_AQ)
|
||||||
|
SIMPLE_OP(m5a_pq, AN_PQ)
|
||||||
|
SIMPLE_OP(m5a_l, AN_L)
|
||||||
|
SIMPLE_OP(m5a_identify, AN_IDENTIFY)
|
||||||
|
SIMPLE_OP(m5a_getid, AN_GETID)
|
||||||
|
|
||||||
|
|
|
@ -52,8 +52,27 @@
|
||||||
#define addsymbol_func 0x53
|
#define addsymbol_func 0x53
|
||||||
#define panic_func 0x54
|
#define panic_func 0x54
|
||||||
|
|
||||||
#define reserved1_func 0x55 // Reserved for user
|
|
||||||
#define reserved2_func 0x56 // Reserved for user
|
#define reserved2_func 0x56 // Reserved for user
|
||||||
#define reserved3_func 0x57 // Reserved for user
|
#define reserved3_func 0x57 // Reserved for user
|
||||||
#define reserved4_func 0x58 // Reserved for user
|
#define reserved4_func 0x58 // Reserved for user
|
||||||
#define reserved5_func 0x59 // Reserved for user
|
#define reserved5_func 0x59 // Reserved for user
|
||||||
|
|
||||||
|
// These operations are for critical path annotation
|
||||||
|
#define annotate_func 0x55
|
||||||
|
#define an_bsm 0x1
|
||||||
|
#define an_esm 0x2
|
||||||
|
#define an_begin 0x3
|
||||||
|
#define an_end 0x4
|
||||||
|
#define an_q 0x6
|
||||||
|
#define an_dq 0x7
|
||||||
|
#define an_wf 0x8
|
||||||
|
#define an_we 0x9
|
||||||
|
#define an_rq 0xA
|
||||||
|
#define an_ws 0xB
|
||||||
|
#define an_sq 0xC
|
||||||
|
#define an_aq 0xD
|
||||||
|
#define an_pq 0xE
|
||||||
|
#define an_l 0xF
|
||||||
|
#define an_identify 0x10
|
||||||
|
#define an_getid 0x11
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue