Browse Source

Merge pull request #966 from riscv-software-src/fix-riscv-build

Rename processor_t::set_csr to put_csr to fix build on RISC-V
pull/969/head
Andrew Waterman 4 years ago
committed by GitHub
parent
commit
1ed910b229
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      fesvr/dtm.cc
  2. 2
      riscv/insns/csrrc.h
  3. 2
      riscv/insns/csrrci.h
  4. 2
      riscv/insns/csrrs.h
  5. 2
      riscv/insns/csrrsi.h
  6. 2
      riscv/insns/csrrw.h
  7. 2
      riscv/insns/csrrwi.h
  8. 2
      riscv/insns/mret.h
  9. 6
      riscv/processor.cc
  10. 2
      riscv/processor.h

1
fesvr/dtm.cc

@ -1,6 +1,5 @@
#include "dtm.h"
#include "debug_defines.h"
#include "encoding.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

2
riscv/insns/csrrc.h

@ -2,7 +2,7 @@ bool write = insn.rs1() != 0;
int csr = validate_csr(insn.csr(), write);
reg_t old = p->get_csr(csr, insn, write);
if (write) {
p->set_csr(csr, old & ~RS1);
p->put_csr(csr, old & ~RS1);
}
WRITE_RD(sext_xlen(old));
serialize();

2
riscv/insns/csrrci.h

@ -2,7 +2,7 @@ bool write = insn.rs1() != 0;
int csr = validate_csr(insn.csr(), write);
reg_t old = p->get_csr(csr, insn, write);
if (write) {
p->set_csr(csr, old & ~(reg_t)insn.rs1());
p->put_csr(csr, old & ~(reg_t)insn.rs1());
}
WRITE_RD(sext_xlen(old));
serialize();

2
riscv/insns/csrrs.h

@ -2,7 +2,7 @@ bool write = insn.rs1() != 0;
int csr = validate_csr(insn.csr(), write);
reg_t old = p->get_csr(csr, insn, write);
if (write) {
p->set_csr(csr, old | RS1);
p->put_csr(csr, old | RS1);
}
WRITE_RD(sext_xlen(old));
serialize();

2
riscv/insns/csrrsi.h

@ -2,7 +2,7 @@ bool write = insn.rs1() != 0;
int csr = validate_csr(insn.csr(), write);
reg_t old = p->get_csr(csr, insn, write);
if (write) {
p->set_csr(csr, old | insn.rs1());
p->put_csr(csr, old | insn.rs1());
}
WRITE_RD(sext_xlen(old));
serialize();

2
riscv/insns/csrrw.h

@ -1,5 +1,5 @@
int csr = validate_csr(insn.csr(), true);
reg_t old = p->get_csr(csr, insn, true);
p->set_csr(csr, RS1);
p->put_csr(csr, RS1);
WRITE_RD(sext_xlen(old));
serialize();

2
riscv/insns/csrrwi.h

@ -1,5 +1,5 @@
int csr = validate_csr(insn.csr(), true);
reg_t old = p->get_csr(csr, insn, true);
p->set_csr(csr, insn.rs1());
p->put_csr(csr, insn.rs1());
WRITE_RD(sext_xlen(old));
serialize();

2
riscv/insns/mret.h

@ -9,6 +9,6 @@ s = set_field(s, MSTATUS_MIE, get_field(s, MSTATUS_MPIE));
s = set_field(s, MSTATUS_MPIE, 1);
s = set_field(s, MSTATUS_MPP, p->extension_enabled('U') ? PRV_U : PRV_M);
s = set_field(s, MSTATUS_MPV, 0);
p->set_csr(CSR_MSTATUS, s);
p->put_csr(CSR_MSTATUS, s);
p->set_privilege(prev_prv);
p->set_virt(prev_virt);

6
riscv/processor.cc

@ -499,8 +499,8 @@ void processor_t::reset()
if (n_pmp > 0) {
// For backwards compatibility with software that is unaware of PMP,
// initialize PMP to permit unprivileged access to all of memory.
set_csr(CSR_PMPADDR0, ~reg_t(0));
set_csr(CSR_PMPCFG0, PMP_R | PMP_W | PMP_X | PMP_NAPOT);
put_csr(CSR_PMPADDR0, ~reg_t(0));
put_csr(CSR_PMPCFG0, PMP_R | PMP_W | PMP_X | PMP_NAPOT);
}
for (auto e : custom_extensions) // reset any extensions
@ -841,7 +841,7 @@ int processor_t::paddr_bits()
return max_xlen == 64 ? 50 : 34;
}
void processor_t::set_csr(int which, reg_t val)
void processor_t::put_csr(int which, reg_t val)
{
val = zext_xlen(val);
auto search = state.csrmap.find(which);

2
riscv/processor.h

@ -279,7 +279,7 @@ public:
#endif
void reset();
void step(size_t n); // run for n cycles
void set_csr(int which, reg_t val);
void put_csr(int which, reg_t val);
uint32_t get_id() const { return id; }
reg_t get_csr(int which, insn_t insn, bool write, bool peek = 0);
reg_t get_csr(int which) { return get_csr(which, insn_t(0), false, true); }

Loading…
Cancel
Save