Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss')
-rw-r--r--libgloss/ChangeLog5
-rw-r--r--libgloss/rx/crt0.S13
2 files changed, 18 insertions, 0 deletions
diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog
index fc3674ebc..37cb4a581 100644
--- a/libgloss/ChangeLog
+++ b/libgloss/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-09 Nick Clifton <nickc@redhat.com>
+
+ * rx/crt0.S (_start): If string instructions are not allowed,
+ avoid using SMOVF.
+
2015-04-08 Nick Clifton <nickc@redhat.com>
* rx/rx.ld: Add .note and DWARF3 sections.
diff --git a/libgloss/rx/crt0.S b/libgloss/rx/crt0.S
index 222742352..6d7089d4d 100644
--- a/libgloss/rx/crt0.S
+++ b/libgloss/rx/crt0.S
@@ -40,11 +40,24 @@ _start:
mov #__stack, r0
mvtc #__vectors, intb
+ /* Copy the .data section from ROM into RAM. */
mov #__datastart, r1
mov #__romdatastart, r2
mov #__romdatacopysize, r3
+#ifdef __RX_DISALLOW_STRING_INSNS__
+ cmp #0, r3
+ beq 2f
+
+1: mov.b [r2+], r5
+ mov.b r5, [r1+]
+ sub #1, r3
+ bne 1b
+2:
+#else
smovf
+#endif
+ /* Initialise the contents of the .bss section. */
mov #__bssstart, r1
mov #0, r2
mov #__bsssize, r3