#define block(shift) \
cmp r0, r1, lsl IMM shift; \
ITT(hs); \
- addhs.w r3, r3, IMM (1 << shift); \
- subhs.w r0, r0, r1, lsl IMM shift
+ WIDE(addhs) r3, r3, IMM (1 << shift); \
+ WIDE(subhs) r0, r0, r1, lsl IMM shift
block(31)
block(30)
#define block(shift) \
cmp r0, r1, lsl IMM shift; \
ITT(hs); \
- addhs.w r3, r3, IMM (1 << shift); \
- subhs.w r0, r0, r1, lsl IMM shift
+ WIDE(addhs) r3, r3, IMM (1 << shift); \
+ WIDE(subhs) r0, r0, r1, lsl IMM shift
block(31)
block(30)
#define block(shift) \
cmp r0, r1, lsl IMM shift; \
IT(hs); \
- subhs.w r0, r0, r1, lsl IMM shift
+ WIDE(subhs) r0, r0, r1, lsl IMM shift
block(31)
block(30)
#define IT(cond)
#define ITT(cond)
#endif
+
+#if __ARM_ARCH_ISA_THUMB == 2
+#define WIDE(op) op.w
+#else
+#define WIDE(op) op
+#endif
#endif
#define GLUE2(a, b) a##b