riscv-isa-sim.git
11 years agoISA changes
Andrew Waterman [Sun, 15 Sep 2013 11:26:35 +0000 (04:26 -0700)]
ISA changes

11 years agoAdd AMOXOR
Andrew Waterman [Wed, 11 Sep 2013 11:13:27 +0000 (04:13 -0700)]
Add AMOXOR

11 years agoImplement zany immediates
Andrew Waterman [Wed, 11 Sep 2013 10:12:11 +0000 (03:12 -0700)]
Implement zany immediates

11 years agoDon't tick HTIF as often
Andrew Waterman [Tue, 10 Sep 2013 09:07:08 +0000 (02:07 -0700)]
Don't tick HTIF as often

11 years agoAdd rd field to JAL; drop J
Andrew Waterman [Tue, 10 Sep 2013 09:06:56 +0000 (02:06 -0700)]
Add rd field to JAL; drop J

11 years agoRenumber PCRs
Andrew Waterman [Sun, 18 Aug 2013 11:14:16 +0000 (04:14 -0700)]
Renumber PCRs

11 years agoAdd test program for dummy rocc
Andrew Waterman [Tue, 13 Aug 2013 07:54:21 +0000 (00:54 -0700)]
Add test program for dummy rocc

Should move this elsewhere

11 years agoImplement RoCC and add a dummy RoCC
Andrew Waterman [Tue, 13 Aug 2013 07:51:07 +0000 (00:51 -0700)]
Implement RoCC and add a dummy RoCC

Enable it with --extension=dummy

11 years agoInstructions are no longer member functions
Andrew Waterman [Mon, 12 Aug 2013 02:10:51 +0000 (19:10 -0700)]
Instructions are no longer member functions

11 years agoIgnore JALR's effective address LSB
Andrew Waterman [Thu, 8 Aug 2013 03:13:33 +0000 (20:13 -0700)]
Ignore JALR's effective address LSB

11 years agoDisentangle some header files
Andrew Waterman [Wed, 7 Aug 2013 01:00:30 +0000 (18:00 -0700)]
Disentangle some header files

11 years agoRename MTFSR/MFFSR to FSSR/FRSR
Andrew Waterman [Wed, 7 Aug 2013 01:00:18 +0000 (18:00 -0700)]
Rename MTFSR/MFFSR to FSSR/FRSR

11 years agoSwap J and JALR encoding
Andrew Waterman [Wed, 7 Aug 2013 00:59:48 +0000 (17:59 -0700)]
Swap J and JALR encoding

11 years agoFix eret (again)
Quan Nguyen [Thu, 1 Aug 2013 04:33:25 +0000 (21:33 -0700)]
Fix eret (again)

* Set SR_S if SR_PS is set, not the other way around
  (that is, set SR_S if SR_PS is not set).

11 years agoFix dumb ERET bug
Andrew Waterman [Wed, 31 Jul 2013 20:37:33 +0000 (13:37 -0700)]
Fix dumb ERET bug

11 years agoDon't flush TLB on PTBR writes (only FATC)
Andrew Waterman [Mon, 29 Jul 2013 02:46:18 +0000 (19:46 -0700)]
Don't flush TLB on PTBR writes (only FATC)

11 years agoNew supervisor mode
Andrew Waterman [Sat, 27 Jul 2013 03:25:18 +0000 (20:25 -0700)]
New supervisor mode

11 years agoRemove more vector stuff
Andrew Waterman [Sat, 27 Jul 2013 01:12:36 +0000 (18:12 -0700)]
Remove more vector stuff

11 years agoRename MFTX/MXTF to FMV
Andrew Waterman [Sat, 27 Jul 2013 00:44:11 +0000 (17:44 -0700)]
Rename MFTX/MXTF to FMV

11 years agoRip out Hwacha for now
Andrew Waterman [Fri, 26 Jul 2013 11:39:25 +0000 (04:39 -0700)]
Rip out Hwacha for now

11 years agoRip out RVC for now
Andrew Waterman [Fri, 26 Jul 2013 11:15:57 +0000 (04:15 -0700)]
Rip out RVC for now

11 years agoGenerate instruction decoder dynamically
Andrew Waterman [Fri, 26 Jul 2013 10:34:51 +0000 (03:34 -0700)]
Generate instruction decoder dynamically

This will make it easier for accelerators to add instructions.

11 years agoRemove JALR static hints
Andrew Waterman [Thu, 25 Jul 2013 23:13:08 +0000 (16:13 -0700)]
Remove JALR static hints

11 years agoKill spike when xspike is SIGINTed
Andrew Waterman [Tue, 23 Jul 2013 01:45:45 +0000 (18:45 -0700)]
Kill spike when xspike is SIGINTed

11 years agoDon't use stdout for debugging
Andrew Waterman [Mon, 22 Jul 2013 21:52:51 +0000 (14:52 -0700)]
Don't use stdout for debugging

11 years agoAdd xspike program
Andrew Waterman [Mon, 22 Jul 2013 21:48:54 +0000 (14:48 -0700)]
Add xspike program

11 years agoUse calloc to allocate target memory
Andrew Waterman [Sat, 20 Jul 2013 01:12:50 +0000 (18:12 -0700)]
Use calloc to allocate target memory

It just calls mmap under the hood, anyway...

11 years agoEliminate infinite loop in debug mode
Andrew Waterman [Sat, 13 Jul 2013 01:42:27 +0000 (18:42 -0700)]
Eliminate infinite loop in debug mode

11 years agoExit cleanly from debug console
Andrew Waterman [Sat, 13 Jul 2013 01:23:05 +0000 (18:23 -0700)]
Exit cleanly from debug console

11 years agoFavor procs.size() over num_cores()
Andrew Waterman [Sat, 13 Jul 2013 01:22:25 +0000 (18:22 -0700)]
Favor procs.size() over num_cores()

11 years agoFix SR_U64 bit being ignored
Andrew Waterman [Sat, 13 Jul 2013 01:20:16 +0000 (18:20 -0700)]
Fix SR_U64 bit being ignored

11 years agomake spike.o correctly depend on dispatch.h
Andrew Waterman [Mon, 3 Jun 2013 05:14:19 +0000 (22:14 -0700)]
make spike.o correctly depend on dispatch.h

11 years agouse coreutils `seq' instead of hacky `range'
Andrew Waterman [Mon, 3 Jun 2013 02:01:57 +0000 (19:01 -0700)]
use coreutils `seq' instead of hacky `range'

11 years agochange riscv-isa-run to spike in documentation
Yunsup Lee [Wed, 15 May 2013 19:03:00 +0000 (12:03 -0700)]
change riscv-isa-run to spike in documentation

11 years agofix make issue
Yunsup Lee [Wed, 15 May 2013 19:02:42 +0000 (12:02 -0700)]
fix make issue

11 years agochange riscv-isa-run to spike
Yunsup Lee [Tue, 14 May 2013 02:11:54 +0000 (19:11 -0700)]
change riscv-isa-run to spike

11 years agomake Makefile sh-friendly
Andrew Waterman [Mon, 6 May 2013 23:07:15 +0000 (16:07 -0700)]
make Makefile sh-friendly

11 years agouse inttypes macros to print uint64_t
Andrew Waterman [Thu, 25 Apr 2013 23:36:25 +0000 (16:36 -0700)]
use inttypes macros to print uint64_t

11 years agofix(?) circular dependence on generated headers
Andrew Waterman [Thu, 25 Apr 2013 04:23:54 +0000 (21:23 -0700)]
fix(?) circular dependence on generated headers

11 years agoadd range(start, end) method to Makefile
Andrew Waterman [Thu, 25 Apr 2013 04:23:39 +0000 (21:23 -0700)]
add range(start, end) method to Makefile

11 years agofixes to correctly simulate the vector unit
Yunsup Lee [Wed, 24 Apr 2013 08:46:16 +0000 (01:46 -0700)]
fixes to correctly simulate the vector unit

11 years agomake interactive mode cope with canonical terminal
Andrew Waterman [Tue, 23 Apr 2013 08:43:45 +0000 (01:43 -0700)]
make interactive mode cope with canonical terminal

11 years agodestroy htif on simulator termination
Andrew Waterman [Tue, 23 Apr 2013 08:00:20 +0000 (01:00 -0700)]
destroy htif on simulator termination

11 years agocorrectly depend on dispatch.h
Andrew Waterman [Mon, 22 Apr 2013 09:22:47 +0000 (02:22 -0700)]
correctly depend on dispatch.h

11 years agoremove circular dependence in Makefile
Andrew Waterman [Sat, 20 Apr 2013 06:33:40 +0000 (23:33 -0700)]
remove circular dependence in Makefile

Thanks, Sebastien!

11 years agoupdate abi register names
Andrew Waterman [Sat, 20 Apr 2013 06:27:35 +0000 (23:27 -0700)]
update abi register names

11 years agoadd AUIPC insn; remove RDNPC insn
Andrew Waterman [Wed, 17 Apr 2013 11:38:17 +0000 (04:38 -0700)]
add AUIPC insn; remove RDNPC insn

11 years agoadd load-reserved/store-conditional instructions
Andrew Waterman [Sat, 30 Mar 2013 01:35:25 +0000 (18:35 -0700)]
add load-reserved/store-conditional instructions

11 years agoignore writes to SR IP field
Andrew Waterman [Sat, 30 Mar 2013 01:26:07 +0000 (18:26 -0700)]
ignore writes to SR IP field

11 years agoopcodes.h must only contain DECLARE_INSN() lines
Andrew Waterman [Wed, 27 Mar 2013 07:14:31 +0000 (00:14 -0700)]
opcodes.h must only contain DECLARE_INSN() lines

11 years agoadd BSD license
Andrew Waterman [Tue, 26 Mar 2013 05:50:37 +0000 (22:50 -0700)]
add BSD license

11 years agoupdate ancient README
Andrew Waterman [Tue, 26 Mar 2013 05:50:18 +0000 (22:50 -0700)]
update ancient README

11 years agotruncate effective addresses in rv32
Andrew Waterman [Tue, 26 Mar 2013 05:38:32 +0000 (22:38 -0700)]
truncate effective addresses in rv32

also, employ a more efficient instruction dispatch based upon rv32 mode.

11 years agoexpose pending interrupts in status register
Andrew Waterman [Tue, 26 Mar 2013 03:06:10 +0000 (20:06 -0700)]
expose pending interrupts in status register

11 years agoadd missing #include
Andrew Waterman [Tue, 26 Mar 2013 03:04:54 +0000 (20:04 -0700)]
add missing #include

11 years agoignore host writes to fromhost if old value not 0
Andrew Waterman [Tue, 26 Mar 2013 03:04:09 +0000 (20:04 -0700)]
ignore host writes to fromhost if old value not 0

11 years agosupport compilation with gcc 4.7
Andrew Waterman [Tue, 26 Mar 2013 02:57:57 +0000 (19:57 -0700)]
support compilation with gcc 4.7

11 years agofix D$ model not acknowledging stores
Andrew Waterman [Fri, 15 Feb 2013 09:24:19 +0000 (01:24 -0800)]
fix D$ model not acknowledging stores

11 years agospecialize fully-associative caches
Andrew Waterman [Fri, 15 Feb 2013 08:25:54 +0000 (00:25 -0800)]
specialize fully-associative caches

the dumb linear search of a set's tag array was far too slow

11 years agodon't store host pointers in soft TLB
Andrew Waterman [Fri, 15 Feb 2013 08:25:01 +0000 (00:25 -0800)]
don't store host pointers in soft TLB

this reduces performance by epsilon, but it simplifies hooking into the MMU

11 years agoclean up fetch-execute loop a bit
Andrew Waterman [Wed, 13 Feb 2013 22:13:51 +0000 (14:13 -0800)]
clean up fetch-execute loop a bit

11 years agoadd I$/D$/L2$ simulators
Andrew Waterman [Wed, 13 Feb 2013 20:59:53 +0000 (12:59 -0800)]
add I$/D$/L2$ simulators

11 years agomigrate to c++11
Andrew Waterman [Wed, 13 Feb 2013 06:59:56 +0000 (22:59 -0800)]
migrate to c++11

11 years agomake HTIF interactions deterministic; fix race
Andrew Waterman [Wed, 13 Feb 2013 06:59:14 +0000 (22:59 -0800)]
make HTIF interactions deterministic; fix race

11 years agoremove unnecessary #include
Andrew Waterman [Sat, 26 Jan 2013 07:48:37 +0000 (23:48 -0800)]
remove unnecessary #include

11 years agochange htif to link against libfesvr
Andrew Waterman [Sat, 26 Jan 2013 02:59:35 +0000 (18:59 -0800)]
change htif to link against libfesvr

12 years agofix vector code simulation problem, turn on SR_U64
Yunsup Lee [Tue, 13 Nov 2012 18:16:03 +0000 (10:16 -0800)]
fix vector code simulation problem, turn on SR_U64

12 years agonew tohost/fromhost semantics
Andrew Waterman [Fri, 31 Aug 2012 00:36:30 +0000 (17:36 -0700)]
new tohost/fromhost semantics

12 years agonew tohost/fromhost semantics
Andrew Waterman [Thu, 2 Aug 2012 05:55:02 +0000 (22:55 -0700)]
new tohost/fromhost semantics

12 years agocorrect HTIF reset behavior
Andrew Waterman [Mon, 23 Jul 2012 04:01:18 +0000 (21:01 -0700)]
correct HTIF reset behavior

cores' reset signals can be independently toggled

12 years agofix htif interaction with interactive mode
Andrew Waterman [Wed, 16 May 2012 01:31:03 +0000 (18:31 -0700)]
fix htif interaction with interactive mode

12 years agoper-core tohost/fromhost registers
Andrew Waterman [Wed, 9 May 2012 10:08:15 +0000 (03:08 -0700)]
per-core tohost/fromhost registers

update your fesvr

12 years agonew supervisor mode
Andrew Waterman [Sat, 24 Mar 2012 19:54:03 +0000 (12:54 -0700)]
new supervisor mode

12 years agoadd disasm functions for vector
Yunsup Lee [Tue, 20 Mar 2012 02:35:48 +0000 (19:35 -0700)]
add disasm functions for vector

12 years agomake NaN behavior consistent with hardfloat
Andrew Waterman [Tue, 20 Mar 2012 06:40:38 +0000 (23:40 -0700)]
make NaN behavior consistent with hardfloat

12 years agofix double-precision NaNs
Andrew Waterman [Tue, 20 Mar 2012 02:38:26 +0000 (19:38 -0700)]
fix double-precision NaNs

12 years agoabstract regfile write port
Andrew Waterman [Tue, 20 Mar 2012 00:54:08 +0000 (17:54 -0700)]
abstract regfile write port

12 years agoabstract regfile behind object
Andrew Waterman [Tue, 20 Mar 2012 00:15:38 +0000 (17:15 -0700)]
abstract regfile behind object

12 years agoupdate vector fences
Andrew Waterman [Mon, 19 Mar 2012 03:49:31 +0000 (20:49 -0700)]
update vector fences

12 years agoclean up vector exception instructions
Yunsup Lee [Sun, 18 Mar 2012 23:29:05 +0000 (16:29 -0700)]
clean up vector exception instructions

12 years agoadd more instructions for vector exception handling
Yunsup Lee [Wed, 14 Mar 2012 06:41:52 +0000 (23:41 -0700)]
add more instructions for vector exception handling

12 years agoadd vvcfg,vtcfg
Yunsup Lee [Wed, 14 Mar 2012 05:23:58 +0000 (22:23 -0700)]
add vvcfg,vtcfg

12 years agoopcodes cleanup
Yunsup Lee [Tue, 13 Mar 2012 17:15:45 +0000 (10:15 -0700)]
opcodes cleanup

12 years agoalways propagate default NaN (all bits set)
Andrew Waterman [Tue, 13 Mar 2012 00:40:43 +0000 (17:40 -0700)]
always propagate default NaN (all bits set)

12 years agoslight change to vector supervisor instructions
Yunsup Lee [Sat, 10 Mar 2012 20:52:34 +0000 (12:52 -0800)]
slight change to vector supervisor instructions

12 years agoadd place holders for instructions to handle vector exceptions
Yunsup Lee [Sat, 3 Mar 2012 23:42:54 +0000 (15:42 -0800)]
add place holders for instructions to handle vector exceptions

12 years agonew instructions to handle vector exceptions
Yunsup Lee [Sat, 3 Mar 2012 23:10:56 +0000 (15:10 -0800)]
new instructions to handle vector exceptions

12 years agonew HTIF protocol. update your fesvr.
Andrew Waterman [Mon, 20 Feb 2012 07:19:51 +0000 (23:19 -0800)]
new HTIF protocol.  update your fesvr.

12 years agofixed a bug in remu[w]
Andrew Waterman [Mon, 20 Feb 2012 07:18:58 +0000 (23:18 -0800)]
fixed a bug in remu[w]

it was actually caught by the ASM tests... :(

12 years agoimplement lighter-weight htif packet header
Andrew Waterman [Sat, 18 Feb 2012 00:36:00 +0000 (16:36 -0800)]
implement lighter-weight htif packet header

12 years agoreimplement div[u][w]/rem[u][w]
Andrew Waterman [Thu, 16 Feb 2012 03:44:24 +0000 (19:44 -0800)]
reimplement div[u][w]/rem[u][w]

fixes bugs for inputs not properly sign-extended

12 years agofix sltu disassembly
Andrew Waterman [Mon, 13 Feb 2012 09:45:32 +0000 (01:45 -0800)]
fix sltu disassembly

12 years agoinitialize tohost and fromhost
Yunsup Lee [Thu, 9 Feb 2012 03:49:39 +0000 (19:49 -0800)]
initialize tohost and fromhost

12 years agoremove debug printf
Andrew Waterman [Wed, 1 Feb 2012 01:32:57 +0000 (17:32 -0800)]
remove debug printf

12 years agopoll HTIF occasionally
Andrew Waterman [Wed, 1 Feb 2012 01:31:33 +0000 (17:31 -0800)]
poll HTIF occasionally

12 years agodon't set badvaddr for instruction access faults
Andrew Waterman [Tue, 31 Jan 2012 00:30:02 +0000 (16:30 -0800)]
don't set badvaddr for instruction access faults

12 years agofix divide by zero bugs
Yunsup Lee [Mon, 30 Jan 2012 22:38:23 +0000 (14:38 -0800)]
fix divide by zero bugs

12 years agocheck that virtual addresses are sign-extended
Andrew Waterman [Tue, 24 Jan 2012 08:08:05 +0000 (00:08 -0800)]
check that virtual addresses are sign-extended

12 years agodisentangle decode.h from other headers
Andrew Waterman [Mon, 23 Jan 2012 02:18:47 +0000 (18:18 -0800)]
disentangle decode.h from other headers

12 years agowork around gcc 4.4 bug
Andrew Waterman [Mon, 23 Jan 2012 01:56:46 +0000 (17:56 -0800)]
work around gcc 4.4 bug