Tim Hutt

Results 261 issues of Tim Hutt

It just has some stuff about adding copyright headers to files but they header has changed and it's short enough to easily do manually now.

refactor

``` /* NOTE: Currently, we only EA if address translation is successful. This may need revisiting. */ function clause execute (STORECON(aq, rl, rs2, rs1, width, rd)) = { if speculate_conditional...

bug

There's tons of code like this: ``` let res : MemoryOpResult(bool) = match (width) { BYTE => mem_write_value(paddr, 1, rs2_val[7..0], aq, rl, false), HALF => mem_write_value(paddr, 2, rs2_val[15..0], aq, rl,...

refactor

The floating point code is full of copy/pasted functions for 16/32/64 bit values. This is unnecessary since Sail has amazing support for generic code that works on all sizes. For...

refactor

Sail has a standard `result` type in it's library now so we should replace these: ``` union PTW_Result('paddr : Type, 'pte : Type) = { PTW_Success: ('paddr, 'pte, 'paddr, nat,...

refactor

For clarify and to avoid mixing them up, we can use Sail's `newtype` feature to create distinct types for physical and virtual addresses. For example: ``` newtype physaddr = physaddr...

refactor

From the Sv39 spec: > The PTE format for Sv39 is shown in Figure 60. Bits 9-0 have the same meaning as for Sv32. Bit 63 is reserved for use...

bug
configuration

In `pt_walk`: ``` // Read this-level PTE from mem let mem_result = mem_read_priv(Read(Data), // AccessType Supervisor, // Privilege pte_phys_addr, 8, // atom (8) false, // aq false, // rl false);...

bug

This is an initial effort to deduplicate the floating point code (see #432). Currently all the floating point code is copy/pasted for every size of float (f16, f32, f64). That's...

Regardless of whether p-ext is enabled or not, some insns (i.e. `add32`) are not available on rv32. Still it is possible to provide generic code for their immediates, as it...