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:
authorDJ Delorie <dj@redhat.com>2015-01-20 21:43:36 +0300
committerDJ Delorie <dj@redhat.com>2015-01-20 21:43:36 +0300
commita098aad30b58da948abed1ca20956b8e10ea3c03 (patch)
tree97e2132d02f392cc09c54726aaf89141be2acc5b /libgloss/rl78
parentae8a802c2933073d3fec01ccf9821fda9fc34f76 (diff)
* rl78/crt0.S: Initialize .saddr. Avoid using SEL.
* rl78/rl78-sim.ld: Add .saddr/.frodata section. * rl78/rl78.ld: Likewise. * rl78/rl78-sim.ld: Make room for virtual register banks. * rl78/rl78.ld: Likewise. * rl78/vregs.h: New. * rl78-sys.h: Use it. * rl78/swrite.S: New. * rl78/Makefile.in: Build it. * rl78/write.c: Use it.
Diffstat (limited to 'libgloss/rl78')
-rw-r--r--libgloss/rl78/swrite.S41
-rw-r--r--libgloss/rl78/vregs.h56
2 files changed, 97 insertions, 0 deletions
diff --git a/libgloss/rl78/swrite.S b/libgloss/rl78/swrite.S
new file mode 100644
index 000000000..a9f4158bc
--- /dev/null
+++ b/libgloss/rl78/swrite.S
@@ -0,0 +1,41 @@
+/*
+
+Copyright (c) 2011 Red Hat Incorporated.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ The name of Red Hat Incorporated may not be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+#include "rl78-sys.h"
+
+
+ .global __SYS_write
+ .type __SYS_write, @function
+__SYS_write:
+ SYSCALL(SYS_write)
+ .size __SYS_write, . - __SYS_write
+
diff --git a/libgloss/rl78/vregs.h b/libgloss/rl78/vregs.h
new file mode 100644
index 000000000..fa488fabc
--- /dev/null
+++ b/libgloss/rl78/vregs.h
@@ -0,0 +1,56 @@
+
+; real
+; GAS defines r0..r7 as aliases for real registers; we want the saddr
+; forms here.
+r_0 = 0xffef8
+r_1 = 0xffef9
+r_2 = 0xffefa
+r_3 = 0xffefb
+r_4 = 0xffefc
+r_5 = 0xffefd
+r_6 = 0xffefe
+r_7 = 0xffeff
+
+#ifdef __RL78_G10__
+
+; clobberable
+r8 = 0xffec8
+r9 = 0xffec9
+r10 = 0xffeca
+r11 = 0xffecb
+r12 = 0xffecc
+r13 = 0xffecd
+r14 = 0xffece
+r15 = 0xffecf
+; preserved
+r16 = 0xffed0
+r17 = 0xffed1
+r18 = 0xffed2
+r19 = 0xffed3
+r20 = 0xffed4
+r21 = 0xffed5
+r22 = 0xffed6
+r23 = 0xffed7
+
+#else
+
+; clobberable
+r8 = 0xffef0
+r9 = 0xffef1
+r10 = 0xffef2
+r11 = 0xffef3
+r12 = 0xffef4
+r13 = 0xffef5
+r14 = 0xffef6
+r15 = 0xffef7
+; preserved
+r16 = 0xffee8
+r17 = 0xffee9
+r18 = 0xffeea
+r19 = 0xffeeb
+r20 = 0xffeec
+r21 = 0xffeed
+r22 = 0xffeee
+r23 = 0xffeef
+
+#endif