diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2013-07-16 07:48:53 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2013-07-16 07:48:53 +0000 |
commit | 6041792ec6b89f5e9eae79d8addbb0f706f9addd (patch) | |
tree | 05a286d63fb8d9fddb81195e6ff80a2f6ad8b2be /newlib/libc/machine/microblaze/mb_endian.h | |
parent | f6ddaa2a292bc9e4d5190a413c0b4c1fa7c81374 (diff) | |
download | cygnal-6041792ec6b89f5e9eae79d8addbb0f706f9addd.tar.gz cygnal-6041792ec6b89f5e9eae79d8addbb0f706f9addd.tar.bz2 cygnal-6041792ec6b89f5e9eae79d8addbb0f706f9addd.zip |
* configure.host: Change to microblaze*.
* libc/include/machine/ieeefp.h: Add __MICROBLAZEEL__.
* libc/machine/microblaze/mb_endian.h: New file.
* newlib/libc/machine/microblaze/strcmp.c: Add little endian support.
* newlib/libc/machine/microblaze/strcpy.c: Likewise.
* newlib/libc/machine/microblaze/strlen.c: Likewise.
* configure.in: Change to microblaze*.
* configure: Regenerate.
* microblaze/xilinx.ld: Remove OUTPUT_FORMAT.
Diffstat (limited to 'newlib/libc/machine/microblaze/mb_endian.h')
-rw-r--r-- | newlib/libc/machine/microblaze/mb_endian.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/newlib/libc/machine/microblaze/mb_endian.h b/newlib/libc/machine/microblaze/mb_endian.h new file mode 100644 index 000000000..fb217ec85 --- /dev/null +++ b/newlib/libc/machine/microblaze/mb_endian.h @@ -0,0 +1,15 @@ +#ifndef _MB_ENDIAN_H +#define _MB_ENDIAN_H + +/* Convenience macros for loading and store 4 bytes in a byte invariant way with + * a singe instruction. Endianess affects this and we rely on MicroBlaze + * load/store reverse instructions to do the trick on little-endian systems. + */ +#ifdef __LITTLE_ENDIAN__ +#define LOAD4BYTES(rD,rA,rB) "\tlwr\t" rD ", " rA ", " rB "\n" +#define STORE4BYTES(rD,rA,rB) "\tswr\t" rD ", " rA ", " rB "\n" +#else +#define LOAD4BYTES(rD,rA,rB) "\tlw\t" rD ", " rA ", " rB "\n" +#define STORE4BYTES(rD,rA,rB) "\tsw\t" rD ", " rA ", " rB "\n" +#endif +#endif |