* 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.
This commit is contained in:
parent
ae8a802c29
commit
a098aad30b
|
@ -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
|
||||
|
|
@ -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
|
Loading…
Reference in New Issue