c_lwsp and c_swsp were not working correctly
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 11 Nov 2018 20:20:11 +0000 (20:20 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 11 Nov 2018 20:20:11 +0000 (20:20 +0000)
commitae3eda6cd35dc5e9525d6852949751c7d127953a
tree55f7adac4dd289e673cc69b468447ac50e072ca9
parent693597b25ae517601de3bb654119e0eec492b5b2
c_lwsp and c_swsp were not working correctly

needed to be in ADDRmode (dropping down to mmu_t::load_xxx not sv_mmu_t)
and also needed to stop using reg_spec.offset.  added an extra
argument to rvc_sp() which is "use_offset=true/false".

switching to use_offset=false for c_lwsp and c_swsp, and getting them
to both NOT be in the normal ADDRmode for LD/ST, we get an
increment on the registers from SP.

really should redirect the CSRs to not use SP, x28-x30 instead or
something, in the unit tests...
riscv/insns/c_lwsp.h
riscv/insns/c_swsp.h
riscv/sv_decode.h
riscv/sv_insn_redirect.cc