File tree Expand file tree Collapse file tree 1 file changed +26
-2
lines changed
Expand file tree Collapse file tree 1 file changed +26
-2
lines changed Original file line number Diff line number Diff line change @@ -119,11 +119,35 @@ union insn_t
119119 uint32_t bits;
120120};
121121
122+ #if 0
123+ #include <stdio.h>
124+ class trace_writeback
125+ {
126+ public:
127+ trace_writeback(reg_t* _rf, int _rd) : rf(_rf), rd(_rd) {}
128+
129+ reg_t operator = (reg_t rhs)
130+ {
131+ printf("R[%x] <= %llx\n",rd,(long long)rhs);
132+ rf[rd] = rhs;
133+ return rhs;
134+ }
135+
136+ private:
137+ reg_t* rf;
138+ int rd;
139+ };
140+
141+ #define do_writeback(rf,rd) trace_writeback(rf,rd)
142+ #else
143+ #define do_writeback (rf,rd ) rf[rd]
144+ #endif
145+
122146// helpful macros, etc
123147#define RS1 R[insn.rtype.rs1]
124148#define RS2 R[insn.rtype.rs2]
125- #define RDR R[ insn.rtype.rdr]
126- #define RDI R[ insn.itype.rdi]
149+ #define RDR do_writeback (R, insn.rtype.rdr)
150+ #define RDI do_writeback (R, insn.itype.rdi)
127151#define FRS1 FR[insn.ftype.rs1]
128152#define FRS2 FR[insn.ftype.rs2]
129153#define FRS3 FR[insn.ftype.rs3]
You can’t perform that action at this time.
0 commit comments