@@ -121,7 +121,7 @@ void pipeline_t::Qsim_mem_cb(int core_id, uint64_t vaddr, uint64_t paddr, uint8_
121
121
122
122
if (type) { // store
123
123
// there can't be mem_cb after mem_cb or dest_reg/flag_cb
124
- if (Qsim_cb_status > SPX_QSIM_MEM_CB) {
124
+ if (Qsim_cb_status > SPX_QSIM_MEM_CB && config. arch_type != SPX_A64 ) {
125
125
Qsim_post_cb (next_inst);
126
126
fetch (next_inst);
127
127
@@ -162,7 +162,7 @@ void pipeline_t::Qsim_mem_cb(int core_id, uint64_t vaddr, uint64_t paddr, uint8_
162
162
}
163
163
else { // load
164
164
// there can't be mem_cb after mem_cb or dest_reg/flag_cb
165
- if (Qsim_cb_status > SPX_QSIM_MEM_CB) {
165
+ if (Qsim_cb_status > SPX_QSIM_MEM_CB && config. arch_type != SPX_A64 ) {
166
166
Qsim_post_cb (next_inst);
167
167
fetch (next_inst);
168
168
@@ -210,7 +210,7 @@ void pipeline_t::Qsim_reg_cb(int core_id, int reg, uint8_t size, int type) {
210
210
if (type) { // dest
211
211
if (size > 0 ) { // regs
212
212
// there can be multiple dest regs (e.g., div/mul) - don't use >= sign
213
- if (Qsim_cb_status > SPX_QSIM_DEST_REG_CB) {
213
+ if (Qsim_cb_status > SPX_QSIM_DEST_REG_CB && config. arch_type != SPX_A64 ) {
214
214
Qsim_post_cb (next_inst);
215
215
fetch (next_inst);
216
216
@@ -251,7 +251,7 @@ void pipeline_t::Qsim_reg_cb(int core_id, int reg, uint8_t size, int type) {
251
251
Qsim_cb_status = SPX_QSIM_DEST_REG_CB;
252
252
}
253
253
else { // flags
254
- if (Qsim_cb_status >= SPX_QSIM_DEST_FLAG_CB) {
254
+ if (Qsim_cb_status >= SPX_QSIM_DEST_FLAG_CB && config. arch_type != SPX_A64 ) {
255
255
Qsim_post_cb (next_inst);
256
256
fetch (next_inst);
257
257
@@ -291,7 +291,7 @@ void pipeline_t::Qsim_reg_cb(int core_id, int reg, uint8_t size, int type) {
291
291
else { // src
292
292
if (size > 0 ) { // regs
293
293
// there can be multiple src regs - don't use >= sign
294
- if (Qsim_cb_status > SPX_QSIM_SRC_REG_CB) {
294
+ if (Qsim_cb_status > SPX_QSIM_SRC_REG_CB && config. arch_type != SPX_A64 ) {
295
295
Qsim_post_cb (next_inst);
296
296
fetch (next_inst);
297
297
@@ -328,7 +328,7 @@ void pipeline_t::Qsim_reg_cb(int core_id, int reg, uint8_t size, int type) {
328
328
Qsim_cb_status = SPX_QSIM_SRC_REG_CB;
329
329
}
330
330
else { // flags
331
- if (Qsim_cb_status >= SPX_QSIM_SRC_FLAG_CB) {
331
+ if (Qsim_cb_status >= SPX_QSIM_SRC_FLAG_CB && config. arch_type != SPX_A64 ) {
332
332
Qsim_post_cb (next_inst);
333
333
fetch (next_inst);
334
334
0 commit comments