On Sun, Nov 27, 2016 at 12:49 PM, David Horner <
ds2h...@gmail.com> wrote:
> The JALR with odd immediate is an anomaly that continues to be problematic,
> so I again suggest it be a Non-Standard Extension.
Can you provide a quantitative demonstration of how this is a problem?
In my CPU design, I expose all address bits for the purposes of
running the test benches and making sure the guts of the circuit are
behaving as expected. It also gives the implementor/integrator the
power to decide whether or not he wants a standards-compliant
implementation (where IADR[0] is ignored) or not (where IADR[0] feeds
back to a signal that generates an alignment trap).
Similar design decisions have been made with respect to the D-port of
the processor as well. For instance, the KCP53000 core can execute a
"ld x1, 1(x0)" instruction in one of three ways, depending on how the
core is integrated into the larger circuit:
1) It can generate an alignment trap by detecting an odd address being
used with a 64-bit transfer,
2) It can implement the required state-machine to implement hardware
assist to load a 64-bit quantity starting at address 1, or,
3) It can ignore low address bits and treat addresses 0, 1, 2, 3, 4,
5, 6, and 7 as address 0; 8, 9, 10, 11, 12, 13, 14, and 15 as address
8; and so on.