|
@@ -582,8 +582,10 @@ __fixup_a_pv_table:
|
|
|
b 2f
|
|
|
1: add r7, r3
|
|
|
ldrh ip, [r7, #2]
|
|
|
+ARM_BE8(rev16 ip, ip)
|
|
|
and ip, 0x8f00
|
|
|
orr ip, r6 @ mask in offset bits 31-24
|
|
|
+ARM_BE8(rev16 ip, ip)
|
|
|
strh ip, [r7, #2]
|
|
|
2: cmp r4, r5
|
|
|
ldrcc r7, [r4], #4 @ use branch for delay slot
|
|
@@ -592,8 +594,14 @@ __fixup_a_pv_table:
|
|
|
#else
|
|
|
b 2f
|
|
|
1: ldr ip, [r7, r3]
|
|
|
+#ifdef CONFIG_CPU_ENDIAN_BE8
|
|
|
+ @ in BE8, we load data in BE, but instructions still in LE
|
|
|
+ bic ip, ip, #0xff000000
|
|
|
+ orr ip, ip, r6, lsl#24
|
|
|
+#else
|
|
|
bic ip, ip, #0x000000ff
|
|
|
orr ip, ip, r6 @ mask in offset bits 31-24
|
|
|
+#endif
|
|
|
str ip, [r7, r3]
|
|
|
2: cmp r4, r5
|
|
|
ldrcc r7, [r4], #4 @ use branch for delay slot
|