aboutsummaryrefslogtreecommitdiff
path: root/gcc/bi-run.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/bi-run.h')
-rw-r--r--gcc/bi-run.h31
1 files changed, 12 insertions, 19 deletions
diff --git a/gcc/bi-run.h b/gcc/bi-run.h
index 669f2ab..d7a547d 100644
--- a/gcc/bi-run.h
+++ b/gcc/bi-run.h
@@ -124,30 +124,23 @@ struct bytecode
DEST offset by OFFSET bits. */
-#if BYTES_BIG_ENDIAN
-
#define SHIFT_IN_BITS(DEST, SOURCE, OFFSET, NBITS) \
(DEST = ((DEST) << (NBITS)) \
| (LM ((NBITS)) \
- & ((SOURCE) >> (INTERP_BPC - (OFFSET) - (NBITS)))))
+ & ((SOURCE) \
+ >> (BYTES_BIG_ENDIAN \
+ ? (INTERP_BPC - (OFFSET) - (NBITS)) \
+ : (OFFSET)))))
#define OR_IN_BITS(DEST, VALUE, OFFSET, NBITS) \
- (DEST = ((DEST) & ~(LM ((NBITS)) << (INTERP_BPC - (OFFSET) - (NBITS)))) \
- | (((VALUE) & LM ((NBITS))) << (INTERP_BPC - (OFFSET) - (NBITS))))
-
-#else
-
-#define SHIFT_IN_BITS(DEST, SOURCE, OFFSET, NBITS) \
- (DEST = ((DEST) << (NBITS)) \
- | (LM ((NBITS)) \
- & ((SOURCE) >> (OFFSET))))
-
-#define OR_IN_BITS(DEST, VALUE, OFFSET, NBITS) \
- (DEST = ((DEST) & ~(LM ((NBITS)) << (OFFSET))) \
- | (((VALUE) & LM ((NBITS))) << (OFFSET)))
-
-#endif
-
+ (DEST = ((DEST) & ~(LM ((NBITS)) \
+ << (BIG_ENDIAN \
+ ? (INTERP_BPC - (OFFSET) - (NBITS)) \
+ : (OFFSET))) \
+ | (((VALUE) & LM ((NBITS))) \
+ << (BIG_ENDIAN \
+ ? (INTERP_BPC - (OFFSET) - (NBITS)) \
+ : (OFFSET)))))
/* Procedure call; arguments are a pointer to the function to be called,
a pointer to a place to store the return value, a pointer to a vector