nds32: Use the correct method to access registers

The registers are represented as bit arrays intended to be accessed using
the buf_set_* and buf_get_* functions. Storing the register values in
integers enables accessing them directly, which gives different results
depending on host byte order.

Convert the register store to use a byte array instead and fix all the
byte order bugs uncovered by that.

Also merge the 32 and 64 bit register fields. Only one of them is used at
a time and after the change to byte arrays their types are also the same.

Change-Id: I456869a1737f4b4f5e8ecbfc1c63c49a75d21619
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/2475
Tested-by: jenkins
Reviewed-by: Hsiangkai Wang <hsiangkai@gmail.com>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
This commit is contained in:
Andreas Fritiofson
2015-01-18 15:13:20 +01:00
parent fd43be0726
commit 0ecb0396d4
2 changed files with 32 additions and 27 deletions

View File

@@ -362,8 +362,7 @@ struct nds32 {
struct nds32_reg {
int32_t num;
uint32_t value;
uint64_t value_64;
uint8_t value[8];
struct target *target;
struct nds32 *nds32;
bool enable;