diff options
author | DJ Delorie <dj@redhat.com> | 2015-01-20 18:43:36 +0000 |
---|---|---|
committer | DJ Delorie <dj@redhat.com> | 2015-01-20 18:43:36 +0000 |
commit | a098aad30b58da948abed1ca20956b8e10ea3c03 (patch) | |
tree | 97e2132d02f392cc09c54726aaf89141be2acc5b /libgloss/rl78 | |
parent | ae8a802c2933073d3fec01ccf9821fda9fc34f76 (diff) | |
download | newlib-a098aad30b58da948abed1ca20956b8e10ea3c03.zip newlib-a098aad30b58da948abed1ca20956b8e10ea3c03.tar.gz newlib-a098aad30b58da948abed1ca20956b8e10ea3c03.tar.bz2 |
* 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.S | 41 | ||||
-rw-r--r-- | libgloss/rl78/vregs.h | 56 |
2 files changed, 97 insertions, 0 deletions
diff --git a/libgloss/rl78/swrite.S b/libgloss/rl78/swrite.S new file mode 100644 index 0000000..a9f4158 --- /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 0000000..fa488fa --- /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 |