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).