]>
git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/d10v/endian.c
1 /* If we're being compiled as a .c file, rather than being included in
2 d10v_sim.h, then ENDIAN_INLINE won't be defined yet. */
4 /* This must come before any other includes. */
8 #define NO_ENDIAN_INLINE
16 return ((uint16
)x
[0]<<8) + x
[1];
20 get_longword (uint8
*x
)
22 return ((uint32
)x
[0]<<24) + ((uint32
)x
[1]<<16) + ((uint32
)x
[2]<<8) + ((uint32
)x
[3]);
26 get_longlong (uint8
*x
)
28 uint32 top
= get_longword (x
);
29 uint32 bottom
= get_longword (x
+4);
30 return (((int64
)top
)<<32) | (int64
)bottom
;
34 write_word (uint8
*addr
, uint16 data
)
36 addr
[0] = (data
>> 8) & 0xff;
37 addr
[1] = data
& 0xff;
41 write_longword (uint8
*addr
, uint32 data
)
43 addr
[0] = (data
>> 24) & 0xff;
44 addr
[1] = (data
>> 16) & 0xff;
45 addr
[2] = (data
>> 8) & 0xff;
46 addr
[3] = data
& 0xff;
50 write_longlong (uint8
*addr
, int64 data
)
52 write_longword (addr
, (uint32
)(data
>> 32));
53 write_longword (addr
+4, (uint32
)data
);