public inbox for newlib-cvs@sourceware.org
help / color / mirror / Atom feed
* [newlib-cygwin] Seperate MSP430 cio syscalls into individual function sections.
@ 2016-02-09 13:45 Nick Clifton
0 siblings, 0 replies; only message in thread
From: Nick Clifton @ 2016-02-09 13:45 UTC (permalink / raw)
To: newlib-cvs
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=9676aeef0d672fea93310df14d36c1c9904d0179
commit 9676aeef0d672fea93310df14d36c1c9904d0179
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Feb 9 13:44:05 2016 +0000
Seperate MSP430 cio syscalls into individual function sections.
START_FUNC: New macro.
END_FUNC: New macro.
exit, isatty, getpid, sc2: Use the new macros.
Diff:
---
libgloss/msp430/ciosyscalls.S | 75 ++++++++++++++++++++++++++-----------------
1 file changed, 46 insertions(+), 29 deletions(-)
diff --git a/libgloss/msp430/ciosyscalls.S b/libgloss/msp430/ciosyscalls.S
index abb01b0..889deae 100644
--- a/libgloss/msp430/ciosyscalls.S
+++ b/libgloss/msp430/ciosyscalls.S
@@ -21,28 +21,60 @@
.macro sc,a
sc2 \a,\a
.endm
+
+.macro START_FUNC name1, name2=foo
+ .pushsection .text.\name1,"ax",@progbits
+ .p2align 1
+ .weak \name1
+ .global \name1
+\name1:
+ .ifnc \name2,foo
+ .weak \name2
+ .global \name2
+\name2:
+ .endif
+.endm
+
+.macro END_FUNC name1, name2=foo
+ .type \name1 , @function
+ .size \name1 , . - \name1
+ .ifnc \name2,foo
+ .type \name2 , @function
+ .size \name2 , . - \name2
+ .endif
+ .popsection
+.endm
+
+
+START_FUNC exit, _exit
+ /* For some reason, the board fails to stop at a breakpoint
+ placed on top of a software breakpoint instruction. */
+/* MOV.B #0,R3 ; this is a software breakpoint instruction */
+1: br_ #1b
+END_FUNC exit, _exit
+
+START_FUNC isatty,_isatty
+ MOV #1,R12
+ ret_
+END_FUNC isatty,_isatty
+
+
+START_FUNC getpid
+ MOV #42,R12
+ ret_
+END_FUNC getpid
+
+
.macro sc2,name,num
- .weak \name
- .global \name
-\name:
+ START_FUNC \name
call_ #__errno
movx_ #ENOSYS, @R12
MOV.W #-1,R12
ret_
+ END_FUNC \name
.endm
- .weak exit
- .weak _exit
- .global exit
- .global _exit
-exit:
-_exit:
- /* For some reason, the board fails to stop at a breakpoint
- placed on top of a software breakpoint instruction. */
-/* MOV.B #0,R3 ; this is a software breakpoint instruction */
-1: br_ #1b
-
#define SC(n) sc2 n,SYS_##n
SC (open)
@@ -52,18 +84,3 @@ _exit:
SC (fstat)
SC (lseek)
SC (kill)
-
- .weak isatty
- .global isatty
-isatty:
- .weak _isatty
- .global _isatty
-_isatty:
- MOV #1,R12
- ret_
-
- .weak getpid
- .global getpid
-getpid:
- MOV #42,R12
- ret_
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-02-09 13:45 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-09 13:45 [newlib-cygwin] Seperate MSP430 cio syscalls into individual function sections Nick Clifton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).