diff options
author | Jason Molenda <jmolenda@apple.com> | 1999-11-02 04:44:47 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 1999-11-02 04:44:47 +0000 |
commit | 5c44784c11ecc8febfff615b88496c56c9ad5274 (patch) | |
tree | 74f9079f5b0ddae1182abf087af8adc02103e149 /gdb/rdi-share/angel_bytesex.c | |
parent | 9503fd8735ec438fcb2fca34afa276e3e6ca94f5 (diff) | |
download | gdb-5c44784c11ecc8febfff615b88496c56c9ad5274.zip gdb-5c44784c11ecc8febfff615b88496c56c9ad5274.tar.gz gdb-5c44784c11ecc8febfff615b88496c56c9ad5274.tar.bz2 |
import gdb-1999-11-01 snapshot
Diffstat (limited to 'gdb/rdi-share/angel_bytesex.c')
-rw-r--r-- | gdb/rdi-share/angel_bytesex.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gdb/rdi-share/angel_bytesex.c b/gdb/rdi-share/angel_bytesex.c new file mode 100644 index 0000000..054f960 --- /dev/null +++ b/gdb/rdi-share/angel_bytesex.c @@ -0,0 +1,57 @@ +/* + * Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved. + * + * This software may be freely used, copied, modified, and distributed + * provided that the above copyright notice is preserved in all copies of the + * software. + */ + +/* + * angel_bytesex.c - Code to support byte-sex independence + * Copyright: (C) 1991, Advanced RISC Machines Ltd., Cambridge, England. + */ + +/* + * RCS $Revision$ + * Checkin $Date$ + */ + +#include "angel_bytesex.h" + +static int reversing_bytes = 0; + +void bytesex_reverse(yes_or_no) +int yes_or_no; +{ reversing_bytes = yes_or_no; +} + +int bytesex_reversing() +{ + return reversing_bytes; +} + +int32 bytesex_hostval(v) +int32 v; +{ /* Return v with the same endian-ness as the host */ + /* This mess generates better ARM code than the more obvious mess */ + /* and may eventually peephole to optimal code... */ + if (reversing_bytes) + { unsigned32 t; + /* t = v ^ (v ror 16) */ + t = v ^ ((v << 16) | (((unsigned32)v) >> 16)); + t &= ~0xff0000; + /* v = v ror 8 */ + v = (v << 24) | (((unsigned32)v) >> 8); + v = v ^ (t >> 8); + } + return v; +} + +int32 bytesex_hostval_16(v) +int32 v; +{ + if (reversing_bytes) { + v = ((v >> 8) & 0xff) | ((v << 8) & 0xff00); + } + return v; +} |