|
From: | Richard Henderson |
Subject: | Re: [Qemu-devel] [PATCH 2/7] nios2: Add architecture emulation support |
Date: | Tue, 18 Oct 2016 13:44:49 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 |
On 10/18/2016 11:32 AM, Marek Vasut wrote:
But the instruction encoding does, so I can use the field from the instruction to directly index the register array.
Well, no, you can't.In fact, it would be cleaner to have multiple arrays -- one for general registers and one for control registers -- that you *could* actually directly index. There are only two instructions that touch the control registers, rdctl and wrctl. In those instructions you're having to explicitly add 32.
Thanks, I hope this is fixed now, although I mostly special-case the R_ZERO handling throughout the code. Any writes to R_ZERO are now ignored and any usage is converted to mov/movi instructions where applicable.
We've done that in the past, but in the end it is much cleaner to minimize the number of places in which you have to check for R_ZERO.
r~
[Prev in Thread] | Current Thread | [Next in Thread] |