|
|
d2836fa |
Description: <short summary of the patch>
|
|
|
d2836fa |
fixup some conditionals in arm assembler to avoid using instrutions that
|
|
|
d2836fa |
fpc 2.6.0 doesn't support when building the rtl with 2.6.0 (first stage)
|
|
|
d2836fa |
Author: Peter Michael Green <plugwash@debian.org>
|
|
|
d2836fa |
Forwarded: not-needed
|
|
|
d2836fa |
Last-Update: 2013-05-30
|
|
|
d2836fa |
|
|
|
d2836fa |
--- fpc-2.6.2.orig/fpcsrc/rtl/arm/arm.inc
|
|
|
d2836fa |
+++ fpc-2.6.2/fpcsrc/rtl/arm/arm.inc
|
|
|
d2836fa |
@@ -895,7 +895,7 @@ end;
|
|
|
d2836fa |
function SwapEndian(const AValue: LongInt): LongInt;assembler;nostackframe;
|
|
|
d2836fa |
asm
|
|
|
d2836fa |
// We're starting with r0 = 4321
|
|
|
d2836fa |
-{$if defined(cpuarmv3) or defined(cpuarmv4) or defined(cpuarmv5)}
|
|
|
d2836fa |
+{$if defined(cpuarmv3) or defined(cpuarmv4) or defined(cpuarmv5) or defined(ver2_6_0)}
|
|
|
d2836fa |
mov r2, r0, lsr #24 // r2 = 0004
|
|
|
d2836fa |
and r1, r0, #16711680 // r1 = 0300
|
|
|
d2836fa |
orr r2, r2, r0, lsl #24 // r2 = 1004
|
|
|
d2836fa |
@@ -910,7 +910,7 @@ end;
|
|
|
d2836fa |
function SwapEndian(const AValue: DWord): DWord;assembler;nostackframe;
|
|
|
d2836fa |
asm
|
|
|
d2836fa |
// We're starting with r0 = 4321
|
|
|
d2836fa |
-{$if defined(cpuarmv3) or defined(cpuarmv4) or defined(cpuarmv5)}
|
|
|
d2836fa |
+{$if defined(cpuarmv3) or defined(cpuarmv4) or defined(cpuarmv5) or defined(ver2_6_0)}
|
|
|
d2836fa |
mov r2, r0, lsr #24 // r2 = 0004
|
|
|
d2836fa |
and r1, r0, #16711680 // r1 = 0300
|
|
|
d2836fa |
orr r2, r2, r0, lsl #24 // r2 = 1004
|
|
|
d2836fa |
@@ -925,7 +925,7 @@ end;
|
|
|
d2836fa |
function SwapEndian(const AValue: Int64): Int64; assembler; nostackframe;
|
|
|
d2836fa |
asm
|
|
|
d2836fa |
// We're starting with r0 = 4321 r1 = 8765
|
|
|
d2836fa |
-{$if defined(cpuarmv3) or defined(cpuarmv4) or defined(cpuarmv5)}
|
|
|
d2836fa |
+{$if defined(cpuarmv3) or defined(cpuarmv4) or defined(cpuarmv5) or defined(ver2_6_0)}
|
|
|
d2836fa |
mov ip, r1
|
|
|
d2836fa |
|
|
|
d2836fa |
mov r2, r0, lsr #24 // r2 = 0004
|
|
|
d2836fa |
@@ -952,7 +952,7 @@ end;
|
|
|
d2836fa |
function SwapEndian(const AValue: QWord): QWord; assembler; nostackframe;
|
|
|
d2836fa |
asm
|
|
|
d2836fa |
// We're starting with r0 = 4321 r1 = 8765
|
|
|
d2836fa |
-{$if defined(cpuarmv3) or defined(cpuarmv4) or defined(cpuarmv5)}
|
|
|
d2836fa |
+{$if defined(cpuarmv3) or defined(cpuarmv4) or defined(cpuarmv5) or defined(ver2_6_0)}
|
|
|
d2836fa |
mov ip, r1
|
|
|
d2836fa |
|
|
|
d2836fa |
mov r2, r0, lsr #24 // r2 = 0004
|