5
5
6
6
#define DECODE_MACRO_USAGE_LOGGED 0
7
7
8
+ #define PROLOGUE \
9
+ reg_t npc = sext_xlen(pc + insn_length(OPCODE))
10
+
11
+ #define EPILOGUE \
12
+ trace_opcode (p, OPCODE, insn); \
13
+ return npc
14
+
8
15
reg_t fast_rv32i_NAME (processor_t * p, insn_t insn, reg_t pc)
9
16
{
10
17
#define xlen 32
11
- reg_t npc = sext_xlen (pc + insn_length (OPCODE)) ;
18
+ PROLOGUE ;
12
19
#include " insns/NAME.h"
13
- trace_opcode (p, OPCODE, insn) ;
20
+ EPILOGUE ;
14
21
#undef xlen
15
- return npc;
16
22
}
17
23
18
24
reg_t fast_rv64i_NAME (processor_t * p, insn_t insn, reg_t pc)
19
25
{
20
26
#define xlen 64
21
- reg_t npc = sext_xlen (pc + insn_length (OPCODE)) ;
27
+ PROLOGUE ;
22
28
#include " insns/NAME.h"
23
- trace_opcode (p, OPCODE, insn) ;
29
+ EPILOGUE ;
24
30
#undef xlen
25
- return npc;
26
31
}
27
32
28
33
#undef DECODE_MACRO_USAGE_LOGGED
@@ -31,21 +36,19 @@ reg_t fast_rv64i_NAME(processor_t* p, insn_t insn, reg_t pc)
31
36
reg_t logged_rv32i_NAME (processor_t * p, insn_t insn, reg_t pc)
32
37
{
33
38
#define xlen 32
34
- reg_t npc = sext_xlen (pc + insn_length (OPCODE)) ;
39
+ PROLOGUE ;
35
40
#include " insns/NAME.h"
36
- trace_opcode (p, OPCODE, insn) ;
41
+ EPILOGUE ;
37
42
#undef xlen
38
- return npc;
39
43
}
40
44
41
45
reg_t logged_rv64i_NAME (processor_t * p, insn_t insn, reg_t pc)
42
46
{
43
47
#define xlen 64
44
- reg_t npc = sext_xlen (pc + insn_length (OPCODE)) ;
48
+ PROLOGUE ;
45
49
#include " insns/NAME.h"
46
- trace_opcode (p, OPCODE, insn) ;
50
+ EPILOGUE ;
47
51
#undef xlen
48
- return npc;
49
52
}
50
53
51
54
#undef CHECK_REG
@@ -57,21 +60,19 @@ reg_t logged_rv64i_NAME(processor_t* p, insn_t insn, reg_t pc)
57
60
reg_t fast_rv32e_NAME (processor_t * p, insn_t insn, reg_t pc)
58
61
{
59
62
#define xlen 32
60
- reg_t npc = sext_xlen (pc + insn_length (OPCODE)) ;
63
+ PROLOGUE ;
61
64
#include " insns/NAME.h"
62
- trace_opcode (p, OPCODE, insn) ;
65
+ EPILOGUE ;
63
66
#undef xlen
64
- return npc;
65
67
}
66
68
67
69
reg_t fast_rv64e_NAME (processor_t * p, insn_t insn, reg_t pc)
68
70
{
69
71
#define xlen 64
70
- reg_t npc = sext_xlen (pc + insn_length (OPCODE)) ;
72
+ PROLOGUE ;
71
73
#include " insns/NAME.h"
72
- trace_opcode (p, OPCODE, insn) ;
74
+ EPILOGUE ;
73
75
#undef xlen
74
- return npc;
75
76
}
76
77
77
78
#undef DECODE_MACRO_USAGE_LOGGED
@@ -80,19 +81,17 @@ reg_t fast_rv64e_NAME(processor_t* p, insn_t insn, reg_t pc)
80
81
reg_t logged_rv32e_NAME (processor_t * p, insn_t insn, reg_t pc)
81
82
{
82
83
#define xlen 32
83
- reg_t npc = sext_xlen (pc + insn_length (OPCODE)) ;
84
+ PROLOGUE ;
84
85
#include " insns/NAME.h"
85
- trace_opcode (p, OPCODE, insn) ;
86
+ EPILOGUE ;
86
87
#undef xlen
87
- return npc;
88
88
}
89
89
90
90
reg_t logged_rv64e_NAME (processor_t * p, insn_t insn, reg_t pc)
91
91
{
92
92
#define xlen 64
93
- reg_t npc = sext_xlen (pc + insn_length (OPCODE)) ;
93
+ PROLOGUE ;
94
94
#include " insns/NAME.h"
95
- trace_opcode (p, OPCODE, insn) ;
95
+ EPILOGUE ;
96
96
#undef xlen
97
- return npc;
98
97
}
0 commit comments