View Issue Details

IDProjectCategoryView StatusLast Update
0023738FPCRTLpublic2013-01-31 07:37
ReporterJeppe Johansen Assigned ToFlorian  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Summary0023738: Missing IT instructions in RTL ARM assembler implementations
DescriptionThe strupper and strlower do not have the IT instructions in ARMv7M code, causing building of the compiler to fail.
Steps To ReproduceBuild using:
make buildbase OS_TARGET=embedded CPU_TARGET=arm SUBARCH=armv7m CROSSINSTALL=1
TagsNo tags attached.
Fixed in Revision23540
FPCOldBugId
FPCTarget
Attached Files

Activities

2013-01-24 11:26

 

sysutils-armv7m.patch (1,507 bytes)   
Index: rtl/arm/strings.inc
===================================================================
--- rtl/arm/strings.inc	(revision 23510)
+++ rtl/arm/strings.inc	(working copy)
@@ -24,6 +24,9 @@
         ldrb    r1, [ip] // First loop does not postindex
 .LByteLoop:
         cmp     r1, #0
+{$if defined(cpuarmv7m) or defined(cpuarmv6m)}
+        it eq
+{$endif}
 {$if defined(cpuarmv3) or defined(cpuarmv4)}
         moveq   pc, lr
 {$else}
@@ -32,6 +35,9 @@
 
         sub     r2, r1, #97   // Normalize to zero
         cmp     r2, #25       // temp >= 0 and temp <=25
+{$if defined(cpuarmv7m) or defined(cpuarmv6m)}
+        itt ls
+{$endif}
         subls   r1, r1, #32   // is lowercase, make uppercase
         strlsb  r1, [ip]      // Store only on change
         ldrb    r1, [ip, #1]! // Loading here utilizes a load delay slot
@@ -48,6 +54,9 @@
         ldrb    r1, [ip] // First loop does not postindex
 .LByteLoop:
         cmp     r1, #0
+{$if defined(cpuarmv7m) or defined(cpuarmv6m)}
+        it eq
+{$endif}
 {$if defined(cpuarmv3) or defined(cpuarmv4)}
         moveq   pc, lr
 {$else}
@@ -56,6 +65,9 @@
 
         sub     r2, r1, #65   // Normalize to zero
         cmp     r2, #25       // temp >= 0 and temp <=25
+{$if defined(cpuarmv7m) or defined(cpuarmv6m)}
+        itt ls
+{$endif}
         addls   r1, r1, #32   // Is uppercase, make lowercase
         strlsb  r1, [ip]      // Store only on change
         ldrb    r1, [ip, #1]! // Loading here utilizes a load delay slot
sysutils-armv7m.patch (1,507 bytes)   

Issue History

Date Modified Username Field Change
2013-01-24 11:26 Jeppe Johansen New Issue
2013-01-24 11:26 Jeppe Johansen File Added: sysutils-armv7m.patch
2013-01-29 21:37 Florian Fixed in Revision => 23540
2013-01-29 21:37 Florian Status new => resolved
2013-01-29 21:37 Florian Resolution open => fixed
2013-01-29 21:37 Florian Assigned To => Florian
2013-01-31 07:37 Jeppe Johansen Status resolved => closed