summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Heenan <joseph@emobix.co.uk>2016-06-04 15:38:15 +0100
committerRobin Watts <robin.watts@artifex.com>2016-06-06 12:03:51 +0100
commit3e8ce4d910d4d0ec74a2b8863978fe7e0fb4dbef (patch)
treed9fe804fd8ff74ad41a550bde45e4db504cd1ea8
parent7db12511cd4a7c5e7d367c9f0d510783550c6d7d (diff)
downloadmupdf-3e8ce4d910d4d0ec74a2b8863978fe7e0fb4dbef.tar.xz
Change ARM assembler to be compatible with Xcode/clang
clang only accepts the unified format - so use the unified syntax everywhere, and add .syntax unified to tell the gnu assembler we're using the unified syntax.
-rw-r--r--source/fitz/draw-scale-simple.c5
-rw-r--r--source/fitz/halftone.c27
2 files changed, 17 insertions, 15 deletions
diff --git a/source/fitz/draw-scale-simple.c b/source/fitz/draw-scale-simple.c
index 8d9cabd6..37a2fd7f 100644
--- a/source/fitz/draw-scale-simple.c
+++ b/source/fitz/draw-scale-simple.c
@@ -580,6 +580,7 @@ scale_row_to_temp1(unsigned char * restrict dst, const unsigned char * restrict
{
asm volatile(
ENTER_ARM
+ ".syntax unified\n"
"stmfd r13!,{r4-r7,r9,r14} \n"
"@ r0 = dst \n"
"@ r1 = src \n"
@@ -600,7 +601,7 @@ scale_row_to_temp1(unsigned char * restrict dst, const unsigned char * restrict
"blt 3f @ while (len >= 0) \n"
"2: @ { \n"
"ldrgt r6, [r2], #4 @ r6 = *contrib++ \n"
- "ldrgtb r7, [r4], #1 @ r7 = *min++ \n"
+ "ldrbgt r7, [r4], #1 @ r7 = *min++ \n"
"ldr r12,[r2], #4 @ r12 = *contrib++ \n"
"ldrb r14,[r4], #1 @ r14 = *min++ \n"
"mlagt r5, r6, r7, r5 @ g += r6 * r7 \n"
@@ -624,7 +625,7 @@ scale_row_to_temp1(unsigned char * restrict dst, const unsigned char * restrict
"blt 9f @ while (len > 0) \n"
"7: @ { \n"
"ldrgt r6, [r2], #4 @ r6 = *contrib++ \n"
- "ldrgtb r7, [r4], #1 @ r7 = *min++ \n"
+ "ldrbgt r7, [r4], #1 @ r7 = *min++ \n"
"ldr r12,[r2], #4 @ r12 = *contrib++ \n"
"ldrb r14,[r4], #1 @ r14 = *min++ \n"
"mlagt r5, r6,r7,r5 @ a += r6 * r7 \n"
diff --git a/source/fitz/halftone.c b/source/fitz/halftone.c
index abe6d026..04c3b5f9 100644
--- a/source/fitz/halftone.c
+++ b/source/fitz/halftone.c
@@ -157,6 +157,7 @@ do_threshold_1(const unsigned char * restrict ht_line, const unsigned char * res
asm volatile(
ENTER_ARM
// Store one more reg that required to keep double stack alignment
+ ".syntax unified\n"
"stmfd r13!,{r4-r7,r9,r14} \n"
"@ r0 = ht_line \n"
"@ r1 = pixmap \n"
@@ -180,7 +181,7 @@ do_threshold_1(const unsigned char * restrict ht_line, const unsigned char * res
"ldr r5, [r1], #4 @ r5 = pixmap[4..7] \n"
"ldrb r4, [r0], #8 @ r0 = ht_line += 8 \n"
"adds r14,r14,#1 @ set eq iff r14=-1 \n"
- "addeqs r5, r5, #1 @ set eq iff r14=r5=-1 \n"
+ "addseq r5, r5, #1 @ set eq iff r14=r5=-1 \n"
"beq 9b @ white \n"
"ldrb r5, [r1, #-8] @ r5 = pixmap[0] \n"
"ldrb r6, [r0, #-7] @ r6 = ht_line[1] \n"
@@ -229,38 +230,38 @@ do_threshold_1(const unsigned char * restrict ht_line, const unsigned char * res
"cmp r5, r4 @ if (r5 < r4) \n"
"orrlt r14,r14,#0x80 @ h |= 0x80 \n"
"cmp r3, #1 @ \n"
- "ldrgtb r4, [r0], #1 @ r6 = ht_line[1] \n"
- "ldrgtb r5, [r1], #1 @ r7 = pixmap[1] \n"
+ "ldrbgt r4, [r0], #1 @ r6 = ht_line[1] \n"
+ "ldrbgt r5, [r1], #1 @ r7 = pixmap[1] \n"
"ble 3f @ \n"
"cmp r5, r4 @ if (r5 < r4) \n"
"orrlt r14,r14,#0x40 @ h |= 0x40 \n"
"cmp r3, #2 @ \n"
- "ldrgtb r4, [r0], #1 @ r6 = ht_line[2] \n"
- "ldrgtb r5, [r1], #1 @ r7 = pixmap[2] \n"
+ "ldrbgt r4, [r0], #1 @ r6 = ht_line[2] \n"
+ "ldrbgt r5, [r1], #1 @ r7 = pixmap[2] \n"
"ble 3f @ \n"
"cmp r5, r4 @ if (r5 < r4) \n"
"orrlt r14,r14,#0x20 @ h |= 0x20 \n"
"cmp r3, #3 @ \n"
- "ldrgtb r4, [r0], #1 @ r6 = ht_line[3] \n"
- "ldrgtb r5, [r1], #1 @ r7 = pixmap[3] \n"
+ "ldrbgt r4, [r0], #1 @ r6 = ht_line[3] \n"
+ "ldrbgt r5, [r1], #1 @ r7 = pixmap[3] \n"
"ble 3f @ \n"
"cmp r5, r4 @ if (r5 < r4) \n"
"orrlt r14,r14,#0x10 @ h |= 0x10 \n"
"cmp r3, #4 @ \n"
- "ldrgtb r4, [r0], #1 @ r6 = ht_line[4] \n"
- "ldrgtb r5, [r1], #1 @ r7 = pixmap[4] \n"
+ "ldrbgt r4, [r0], #1 @ r6 = ht_line[4] \n"
+ "ldrbgt r5, [r1], #1 @ r7 = pixmap[4] \n"
"ble 3f @ \n"
"cmp r5, r4 @ if (r5 < r4) \n"
"orrlt r14,r14,#0x08 @ h |= 0x08 \n"
"cmp r3, #5 @ \n"
- "ldrgtb r4, [r0], #1 @ r6 = ht_line[5] \n"
- "ldrgtb r5, [r1], #1 @ r7 = pixmap[5] \n"
+ "ldrbgt r4, [r0], #1 @ r6 = ht_line[5] \n"
+ "ldrbgt r5, [r1], #1 @ r7 = pixmap[5] \n"
"ble 3f @ \n"
"cmp r5, r4 @ if (r5 < r4) \n"
"orrlt r14,r14,#0x04 @ h |= 0x04 \n"
"cmp r3, #6 @ \n"
- "ldrgtb r4, [r0], #1 @ r6 = ht_line[6] \n"
- "ldrgtb r5, [r1], #1 @ r7 = pixmap[6] \n"
+ "ldrbgt r4, [r0], #1 @ r6 = ht_line[6] \n"
+ "ldrbgt r5, [r1], #1 @ r7 = pixmap[6] \n"
"ble 3f @ \n"
"cmp r5, r4 @ if (r5 < r4) \n"
"orrlt r14,r14,#0x02 @ h |= 0x02 \n"