Luke Kenneth Casson Leighton [Wed, 7 Nov 2018 09:24:12 +0000 (09:24 +0000)]
fix fsgn elwidth
Luke Kenneth Casson Leighton [Wed, 7 Nov 2018 09:20:42 +0000 (09:20 +0000)]
attempting to get rv32 mv working
Luke Kenneth Casson Leighton [Wed, 7 Nov 2018 09:14:09 +0000 (09:14 +0000)]
fix length=0 in fsw and fsd
Luke Kenneth Casson Leighton [Wed, 7 Nov 2018 07:46:44 +0000 (07:46 +0000)]
macro-ify rv op elwidth setup/teardown
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 17:51:11 +0000 (17:51 +0000)]
elwidth rv_rem
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 17:49:45 +0000 (17:49 +0000)]
unsigned version of div
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 17:45:15 +0000 (17:45 +0000)]
add unsigned versions of rv_int_op_prepare and finish
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 16:11:12 +0000 (16:11 +0000)]
add debug info on rv_sr
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 11:40:22 +0000 (11:40 +0000)]
convert rv_sl to same extra bitwidth arg
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 11:36:43 +0000 (11:36 +0000)]
convert rv_sl to same extra bitwidth arg
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 11:35:42 +0000 (11:35 +0000)]
convert rv_sl to same extra bitwidth arg
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 11:33:26 +0000 (11:33 +0000)]
pass in extra arg (bitwidth) into rv_sr
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 11:28:14 +0000 (11:28 +0000)]
alter rv_sr to take bitwidth arg
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 11:20:34 +0000 (11:20 +0000)]
elwidth-ify rv_sl and rv_sr
Luke Kenneth Casson Leighton [Tue, 6 Nov 2018 11:18:43 +0000 (11:18 +0000)]
break int op down into prepare, do, and finish
Luke Kenneth Casson Leighton [Mon, 5 Nov 2018 08:55:04 +0000 (08:55 +0000)]
add CSR_USVCFG set/get
Luke Kenneth Casson Leighton [Mon, 5 Nov 2018 08:51:49 +0000 (08:51 +0000)]
correct bank and size, use in setting up CSR tables
Luke Kenneth Casson Leighton [Mon, 5 Nov 2018 08:07:57 +0000 (08:07 +0000)]
move csr reg and predicate table unpack to separate function
Luke Kenneth Casson Leighton [Mon, 5 Nov 2018 08:01:46 +0000 (08:01 +0000)]
add state and bank sv csr bitfields
Luke Kenneth Casson Leighton [Sun, 4 Nov 2018 16:18:06 +0000 (16:18 +0000)]
debug shape remap
Luke Kenneth Casson Leighton [Sun, 4 Nov 2018 02:27:48 +0000 (02:27 +0000)]
set isvec when predication enabled
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 15:24:14 +0000 (15:24 +0000)]
raise exception if permutation set to reserved value
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 15:22:32 +0000 (15:22 +0000)]
add comment on where reshape map is set up
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 14:00:57 +0000 (14:00 +0000)]
add reshaping algorithm for elements
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 10:57:49 +0000 (10:57 +0000)]
add stub "remap" of register offsets
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 10:32:14 +0000 (10:32 +0000)]
add sv shape CSRs
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 10:26:17 +0000 (10:26 +0000)]
add placeholder CSR uremap get
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 10:25:42 +0000 (10:25 +0000)]
add remap CSR set
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 10:17:39 +0000 (10:17 +0000)]
add reshape data structures and get_shape function
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 09:46:00 +0000 (09:46 +0000)]
add remap and shape sv csrs
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 08:01:58 +0000 (08:01 +0000)]
add debug on zeroing-predication c.mv
Luke Kenneth Casson Leighton [Sat, 3 Nov 2018 06:56:49 +0000 (06:56 +0000)]
add state redirection for CSR get/set depending on processor mode
Luke Kenneth Casson Leighton [Fri, 2 Nov 2018 13:45:56 +0000 (13:45 +0000)]
add twin src and dest flen instruction testing
WRITE_FREG and READ_FREG need different flen inputs. start differentiating
Luke Kenneth Casson Leighton [Fri, 2 Nov 2018 11:26:44 +0000 (11:26 +0000)]
expand register size to 128 long, add exceptions if bounds exceeded
also adding debug prints for tracking down obscure fmv bug
Luke Kenneth Casson Leighton [Fri, 2 Nov 2018 11:25:21 +0000 (11:25 +0000)]
obscure fmv bug where fp reg size was not defined
Luke Kenneth Casson Leighton [Fri, 2 Nov 2018 08:31:43 +0000 (08:31 +0000)]
increase regfile sizes to 128 entries
Luke Kenneth Casson Leighton [Thu, 1 Nov 2018 12:13:13 +0000 (12:13 +0000)]
reduce fp ops down to op width
Luke Kenneth Casson Leighton [Thu, 1 Nov 2018 10:03:40 +0000 (10:03 +0000)]
add instruction flen detection
Luke Kenneth Casson Leighton [Thu, 1 Nov 2018 06:14:40 +0000 (06:14 +0000)]
WRITE_FRD convert 64-bit to elwidth
Luke Kenneth Casson Leighton [Wed, 31 Oct 2018 14:26:59 +0000 (14:26 +0000)]
convert sv_proc_t::f128 to sv_freg_t type so it carries reg_spec_t state
Luke Kenneth Casson Leighton [Wed, 31 Oct 2018 14:14:39 +0000 (14:14 +0000)]
override elwidth in sv_proc_t::f64
Luke Kenneth Casson Leighton [Wed, 31 Oct 2018 13:19:22 +0000 (13:19 +0000)]
whoops nbytes in DO_WRITE_FREG has to be flen not xlen based
Luke Kenneth Casson Leighton [Wed, 31 Oct 2018 13:14:51 +0000 (13:14 +0000)]
override elwidth in sv_proc_t::f64
Luke Kenneth Casson Leighton [Wed, 31 Oct 2018 11:37:15 +0000 (11:37 +0000)]
add packed (non-default) elwidth support in DO_WRITE_FREG
Luke Kenneth Casson Leighton [Wed, 31 Oct 2018 07:47:05 +0000 (07:47 +0000)]
READ_FREG reads fp16 from offset into reg array
Luke Kenneth Casson Leighton [Wed, 31 Oct 2018 03:33:28 +0000 (03:33 +0000)]
add subdivisions
Luke Kenneth Casson Leighton [Wed, 31 Oct 2018 02:21:33 +0000 (02:21 +0000)]
return correct register elwidth for get_fpreg
Luke Kenneth Casson Leighton [Wed, 31 Oct 2018 00:21:51 +0000 (00:21 +0000)]
add 32-fp16 load/convert in WRITE_FRD
Luke Kenneth Casson Leighton [Tue, 30 Oct 2018 09:44:40 +0000 (09:44 +0000)]
start modifying DO_WRITE_FREG to store elwidth-based fp
Luke Kenneth Casson Leighton [Tue, 30 Oct 2018 07:53:07 +0000 (07:53 +0000)]
modify debug statement on WRITE_FRD to display hex of number
Luke Kenneth Casson Leighton [Tue, 30 Oct 2018 06:09:50 +0000 (06:09 +0000)]
on scalar redirected reg, break hardware loop at first dest-store
Luke Kenneth Casson Leighton [Tue, 30 Oct 2018 06:09:20 +0000 (06:09 +0000)]
on scalar operation, sign-extend / zero-extend to full reg width
Luke Kenneth Casson Leighton [Tue, 30 Oct 2018 02:55:22 +0000 (02:55 +0000)]
down-convert floating-point 32-bit to fp 16-bit then return 16-bit uint
this to be used just before MMU store
Luke Kenneth Casson Leighton [Tue, 30 Oct 2018 01:14:06 +0000 (01:14 +0000)]
add sv_proc_t f32 conversions when elwidth=16bit
Luke Kenneth Casson Leighton [Tue, 30 Oct 2018 00:45:15 +0000 (00:45 +0000)]
set elwidth (carry through) from MMU
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 14:10:13 +0000 (14:10 +0000)]
morph conversion of floating-point for storing, through sv_proc_t
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 10:08:52 +0000 (10:08 +0000)]
add explicit get of data inside sv_freg_t, float32_t etc.
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 09:54:21 +0000 (09:54 +0000)]
add redirector operators for sv_freg_t to uint32 and uint64
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 06:39:41 +0000 (06:39 +0000)]
redirect store insns through sv_proc_t for elwidth adjustment
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 06:31:25 +0000 (06:31 +0000)]
override and redirect mmu store functions to sv_proc_t
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 06:07:37 +0000 (06:07 +0000)]
remove unneeded commented-out code
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 04:22:25 +0000 (04:22 +0000)]
remove unnecessary function for mmu elwidth load
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 04:16:59 +0000 (04:16 +0000)]
fix niggles in offset calculation for LD with elwidth
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 02:17:10 +0000 (02:17 +0000)]
add in addrmode
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 02:00:17 +0000 (02:00 +0000)]
starting to put in addr_mode
Luke Kenneth Casson Leighton [Mon, 29 Oct 2018 01:50:15 +0000 (01:50 +0000)]
redirect READ_REG to add addr_mode
Luke Kenneth Casson Leighton [Sun, 28 Oct 2018 20:01:45 +0000 (20:01 +0000)]
dynamically redirect mmu load into single sv_proc_t::mmu_load fn
Luke Kenneth Casson Leighton [Sun, 28 Oct 2018 15:24:07 +0000 (15:24 +0000)]
adjust mmu load to take reg_spec_t so that proper offset-adjustments can be made
the adding of the immediate plus the relevant offset to the relevant
register needs to be calculated before the load takes place. algorithm
is slightly different from the one used in rv_add
Luke Kenneth Casson Leighton [Sun, 28 Oct 2018 13:16:14 +0000 (13:16 +0000)]
redirect mmu load function(s) through sv_proc_t
Luke Kenneth Casson Leighton [Sun, 28 Oct 2018 00:06:22 +0000 (01:06 +0100)]
move mmu macros to cc file
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 22:53:29 +0000 (23:53 +0100)]
Updating python files and riscv for calling from any directory.
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 08:03:34 +0000 (09:03 +0100)]
redirect float128_t through sv_float128_t class instead of typedef
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 07:40:15 +0000 (08:40 +0100)]
replace sv_float64_t typedef with class derived from sv_regbase_t
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 07:19:54 +0000 (08:19 +0100)]
redirect freg through getter macro, to keep elwidth state
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 06:50:08 +0000 (07:50 +0100)]
add sv_float32_t override, use explicit float32_t typecast for now
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 06:20:24 +0000 (07:20 +0100)]
replace freg_t typedef with actual sv_freg_t class derived from sv_regbase_t
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 06:07:59 +0000 (07:07 +0100)]
READ_FREG not to return an alternative type
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 04:14:28 +0000 (05:14 +0100)]
redirect freg_t to sv_freg_t
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 04:03:23 +0000 (05:03 +0100)]
put in typedef sv_floatNN_t
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 03:48:31 +0000 (04:48 +0100)]
add f128 sv_proc_t redirect
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 03:41:53 +0000 (04:41 +0100)]
add f32 redirects in sv_proc_t
Luke Kenneth Casson Leighton [Sat, 27 Oct 2018 03:38:37 +0000 (04:38 +0100)]
add f64 redirection to sv_proc_t
Luke Kenneth Casson Leighton [Fri, 26 Oct 2018 06:57:42 +0000 (07:57 +0100)]
forgot to mask off data being written within element
Luke Kenneth Casson Leighton [Fri, 26 Oct 2018 05:46:27 +0000 (06:46 +0100)]
add debug printfs
Luke Kenneth Casson Leighton [Fri, 26 Oct 2018 03:27:32 +0000 (04:27 +0100)]
add max elwidth resolver on add operation
result now respects the element width of the 2 source operands
Luke Kenneth Casson Leighton [Fri, 26 Oct 2018 03:16:12 +0000 (04:16 +0100)]
add to_elwidth function, not complete: needs to use source elwidths
Luke Kenneth Casson Leighton [Fri, 26 Oct 2018 03:12:39 +0000 (04:12 +0100)]
sign/zero-extend result as well
Luke Kenneth Casson Leighton [Fri, 26 Oct 2018 03:09:43 +0000 (04:09 +0100)]
alter operation width based on max bitwidth, and sign/zero-extend
Luke Kenneth Casson Leighton [Fri, 26 Oct 2018 01:43:21 +0000 (02:43 +0100)]
pass in sign-extend argument for use in non-default bitwidth
Luke Kenneth Casson Leighton [Thu, 25 Oct 2018 23:57:56 +0000 (00:57 +0100)]
add variable bitwidth on read/write regs
Luke Kenneth Casson Leighton [Thu, 25 Oct 2018 09:10:50 +0000 (10:10 +0100)]
break register down in non-default elwidth case
Luke Kenneth Casson Leighton [Thu, 25 Oct 2018 08:55:46 +0000 (09:55 +0100)]
add isvec to reg_spec_t, bit of cleanup
Luke Kenneth Casson Leighton [Thu, 25 Oct 2018 08:28:33 +0000 (09:28 +0100)]
redirect DO_WRITE_FREG and READ_FREG and others
no longer adding the offset onto the register in sv_insn_t,
now to be done in sv_proc_t WRITE_REG/READ_REG, where the
element width can be examined (finally)
Luke Kenneth Casson Leighton [Thu, 25 Oct 2018 07:30:41 +0000 (08:30 +0100)]
overload READ_REG
Luke Kenneth Casson Leighton [Thu, 25 Oct 2018 06:34:17 +0000 (07:34 +0100)]
remove offset argument from predicated fn, offset now stored in reg_spec_t
Luke Kenneth Casson Leighton [Thu, 25 Oct 2018 06:28:49 +0000 (07:28 +0100)]
make reg_spec_t offset a pointer, sometimes it needs to be NULL
Luke Kenneth Casson Leighton [Thu, 25 Oct 2018 05:36:06 +0000 (06:36 +0100)]
use reg_spec_t which passes reg + offset into sv_proc_t
Luke Kenneth Casson Leighton [Wed, 24 Oct 2018 04:39:20 +0000 (05:39 +0100)]
make common function for getting bitwidth
Luke Kenneth Casson Leighton [Tue, 23 Oct 2018 05:13:53 +0000 (06:13 +0100)]
add type signed identification, add lh/sh to insn ld/store types
Luke Kenneth Casson Leighton [Tue, 23 Oct 2018 05:11:32 +0000 (06:11 +0100)]
add type store categorisation