Browse Source

Propogate the reset call to the extensions as well. Add reset function to extensions (demonstration in dummy acc)

confprec
Stephen Twigg 13 years ago
parent
commit
cabb915003
  1. 5
      riscv/dummy-rocc.h
  2. 1
      riscv/extension.h
  3. 3
      riscv/processor.cc

5
riscv/dummy-rocc.h

@ -35,6 +35,11 @@ class dummy_rocc_t : public rocc_t
return prev_acc; // in all cases, xd <- previous value of acc[rs2]
}
void reset()
{
for(int i = 0; i < num_acc; i++) acc[i] = 0;
}
private:
static const int num_acc = 4;

1
riscv/extension.h

@ -15,6 +15,7 @@ class extension_t
virtual ~extension_t();
void set_processor(processor_t* _p) { p = _p; }
virtual void reset() {};
protected:
processor_t* p;

3
riscv/processor.cc

@ -65,7 +65,8 @@ void processor_t::reset(bool value)
return;
run = !value;
state.reset();
state.reset(); // reset the core
ext->reset(); // reset the extension
}
uint32_t processor_t::set_fsr(uint32_t val)

Loading…
Cancel
Save