From 60bef55d30bdd165555a596138e3c9ef2a103902 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Mon, 19 Nov 2007 20:03:25 +0000 Subject: [PATCH] 2007-11-19 Nick Clifton * libc/machine/mn10300/Makefile.am (CCASFLAGS): Add -Wa,--gdwarf-2. * libc/machine/mn10300/Makefile.in: Regenerate. * libc/machine/mn10300/memchar.S: Remove redundant labels. Add .debug_frame section. * libc/machine/mn10300/memcmp.S: Likewise. * libc/machine/mn10300/memcpy.S: Likewise. * libc/machine/mn10300/memset.S: Likewise. * libc/machine/mn10300/strchr.S: Likewise. * libc/machine/mn10300/strcmp.S: Likewise. * libc/machine/mn10300/strcpy.S: Likewise. * libc/machine/mn10300/strlen.S: Likewise. --- newlib/ChangeLog | 23 +++++ newlib/libc/machine/mn10300/Makefile.am | 2 +- newlib/libc/machine/mn10300/Makefile.in | 14 +-- newlib/libc/machine/mn10300/memchr.S | 50 ++++++++-- newlib/libc/machine/mn10300/memcmp.S | 48 +++++++-- newlib/libc/machine/mn10300/memcpy.S | 45 +++++++-- newlib/libc/machine/mn10300/memset.S | 126 +++++++++++++++--------- newlib/libc/machine/mn10300/strchr.S | 47 +++++++-- newlib/libc/machine/mn10300/strcmp.S | 46 +++++++-- newlib/libc/machine/mn10300/strcpy.S | 44 ++++++++- newlib/libc/machine/mn10300/strlen.S | 41 +++++++- 11 files changed, 388 insertions(+), 98 deletions(-) diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 021e410a3..45abfcf82 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,26 @@ +2007-11-19 Nick Clifton + + * libc/machine/mn10300/Makefile.am (CCASFLAGS): Add -Wa,--gdwarf-2. + * libc/machine/mn10300/Makefile.in: Regenerate. + * libc/machine/mn10300/memchar.S: Remove redundant labels. Add + .debug_frame section. + * libc/machine/mn10300/memcmp.S: Likewise. + * libc/machine/mn10300/memcpy.S: Likewise. + * libc/machine/mn10300/memset.S: Likewise. + * libc/machine/mn10300/strchr.S: Likewise. + * libc/machine/mn10300/strcmp.S: Likewise. + * libc/machine/mn10300/strcpy.S: Likewise. + * libc/machine/mn10300/strlen.S: Likewise. + +2007-11-15 Jeff Johnston + + * libc/include/sys/_default_fcntl.h: New header file that + is the default version of sys/fcntl.h. + * libc/include/sys/fcntl.h: Changed to simply include + sys/_default_fcntl.h. + * libc/sys/arm/sys/fcntl.h: New file that includes + sys/_default_fcntl.h and defines O_BINARY. + 2007-11-08 Corinna Vinschen * libc/include/sys/unistd.h: Remove Cygwin definition of MAXPATHLEN. diff --git a/newlib/libc/machine/mn10300/Makefile.am b/newlib/libc/machine/mn10300/Makefile.am index 88ef35862..491775c74 100644 --- a/newlib/libc/machine/mn10300/Makefile.am +++ b/newlib/libc/machine/mn10300/Makefile.am @@ -11,7 +11,7 @@ noinst_LIBRARIES = lib.a lib_a_SOURCES = setjmp.S memchr.S memcmp.S memcpy.S memset.S strchr.S \ strcmp.S strcpy.S strlen.S lib_a_CFLAGS=$(AM_CFLAGS) -lib_a_CCASFLAGS=$(AM_CCASFLAGS) +lib_a_CCASFLAGS=$(AM_CCASFLAGS) -Wa,--gdwarf-2 ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/mn10300/Makefile.in b/newlib/libc/machine/mn10300/Makefile.in index bd69b5d8d..2b953b59a 100644 --- a/newlib/libc/machine/mn10300/Makefile.in +++ b/newlib/libc/machine/mn10300/Makefile.in @@ -132,11 +132,6 @@ STRIP = @STRIP@ USE_LIBTOOL_FALSE = @USE_LIBTOOL_FALSE@ USE_LIBTOOL_TRUE = @USE_LIBTOOL_TRUE@ VERSION = @VERSION@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_AS = @ac_ct_AS@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_READELF = @ac_ct_READELF@ -ac_ct_STRIP = @ac_ct_STRIP@ aext = @aext@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ @@ -152,18 +147,23 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ libm_machine_dir = @libm_machine_dir@ +localedir = @localedir@ localstatedir = @localstatedir@ lpfx = @lpfx@ machine_dir = @machine_dir@ @@ -172,8 +172,10 @@ mkdir_p = @mkdir_p@ newlib_basedir = @newlib_basedir@ oext = @oext@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sys_dir = @sys_dir@ @@ -187,7 +189,7 @@ lib_a_SOURCES = setjmp.S memchr.S memcmp.S memcpy.S memset.S strchr.S \ strcmp.S strcpy.S strlen.S lib_a_CFLAGS = $(AM_CFLAGS) -lib_a_CCASFLAGS = $(AM_CCASFLAGS) +lib_a_CCASFLAGS = $(AM_CCASFLAGS) -Wa,--gdwarf-2 ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host all: all-am diff --git a/newlib/libc/machine/mn10300/memchr.S b/newlib/libc/machine/mn10300/memchr.S index 4a808f9c6..90b0f467e 100644 --- a/newlib/libc/machine/mn10300/memchr.S +++ b/newlib/libc/machine/mn10300/memchr.S @@ -5,6 +5,7 @@ .type _memchr,@function _memchr: movm [d2,d3,a2,a3],(sp) +.Lend_of_prologue: mov d0,a0 mov d1,d2 mov (28,sp),a1 @@ -17,7 +18,6 @@ _memchr: mov a0,a2 mov 0,a3 clr d1 -.L29: setlb mov a3,d0 asl 8,d0 @@ -40,11 +40,10 @@ _memchr: beq .L34 mov a2,a0 clr d1 -.L38: setlb movbu (a0),d0 cmp d2,d0 - beq .L47 + beq .Lepilogue inc a0 inc d1 cmp 3,d1 @@ -56,21 +55,54 @@ _memchr: bhi .L33 .L48: mov a2,a0 -#endif .L44: +#endif cmp 0,a1 beq .L50 -.L49: setlb movbu (a0),d0 cmp d2,d0 - beq .L47 + beq .Lepilogue inc a0 sub 1,a1 lne .L50: mov 0,a0 -.L47: +.Lepilogue: ret [d2,d3,a2,a3],16 -.Lfe1: - .size _memchr,.Lfe1-_memchr +.Lend_of_memchr: + .size _memchr, .Lend_of_memchr - _memchr + + .section .debug_frame,"",@progbits +.Lstart_of_debug_frame: + # Common Information Entry (CIE) + .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length +.Lstart_of_CIE: + .4byte 0xffffffff # CIE Identifier Tag + .byte 0x1 # CIE Version + .ascii "\0" # CIE Augmentation + .uleb128 0x1 # CIE Code Alignment Factor + .sleb128 -4 # CIE Data Alignment Factor + .byte 0x32 # CIE RA Column + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x9 + .uleb128 0x0 + .byte 0xb2 # DW_CFA_offset, column 0x32 + .uleb128 0x0 + .align 2 +.Lend_of_CIE: + + # Frame Description Entry (FDE) + .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length +.Lstart_of_FDE: + .4byte .Lstart_of_debug_frame # FDE CIE offset + .4byte _memchr # FDE initial location + .4byte .Lend_of_memchr - _memchr # FDE address range + .byte 0x4 # DW_CFA_advance_loc4 + .4byte .Lend_of_prologue - _memchr + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 0x4 + .byte 0x87 # DW_CFA_offset, column 0x7 + .uleb128 0x1 + .align 2 +.Lend_of_FDE: diff --git a/newlib/libc/machine/mn10300/memcmp.S b/newlib/libc/machine/mn10300/memcmp.S index 41774892b..e272c5446 100644 --- a/newlib/libc/machine/mn10300/memcmp.S +++ b/newlib/libc/machine/mn10300/memcmp.S @@ -5,6 +5,7 @@ .type _memcmp,@function _memcmp: movm [d2,d3,a2,a3],(sp) +.Lend_of_prologue: mov d0,a0 mov d1,a1 mov (28,sp),a2 @@ -15,7 +16,6 @@ _memcmp: or d2,d0 btst 3,d0 bne .L22 -.L17: setlb mov (a0),d1 mov (a1),d0 @@ -26,11 +26,10 @@ _memcmp: add -4,a2 cmp 3,a2 lhi -#endif .L22: +#endif cmp 0,a2 beq .L24 -.L18: setlb movbu (a0),d3 movbu (a1),d2 @@ -38,16 +37,49 @@ _memcmp: beq .L23 mov d3,d0 sub d2,d0 - jmp .L25 + jmp .Lepilogue .L23: inc a0 inc a1 -.L26: sub 1,a2 lne .L24: clr d0 -.L25: +.Lepilogue: ret [d2,d3,a2,a3],16 -.Lfe1: - .size _memcmp,.Lfe1-_memcmp +.Lend_of_func: + .size _memcmp, .Lend_of_func - _memcmp + + .section .debug_frame,"",@progbits +.Lstart_of_debug_frame: + # Common Information Entry (CIE) + .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length +.Lstart_of_CIE: + .4byte 0xffffffff # CIE Identifier Tag + .byte 0x1 # CIE Version + .ascii "\0" # CIE Augmentation + .uleb128 0x1 # CIE Code Alignment Factor + .sleb128 -4 # CIE Data Alignment Factor + .byte 0x32 # CIE RA Column + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x9 + .uleb128 0x0 + .byte 0xb2 # DW_CFA_offset, column 0x32 + .uleb128 0x0 + .align 2 +.Lend_of_CIE: + + # Frame Description Entry (FDE) + .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length +.Lstart_of_FDE: + .4byte .Lstart_of_debug_frame # FDE CIE offset + .4byte _memcmp # FDE initial location + .4byte .Lend_of_func - _memcmp # FDE address range + .byte 0x4 # DW_CFA_advance_loc4 + .4byte .Lend_of_prologue - _memcmp + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 0x4 + .byte 0x87 # DW_CFA_offset, column 0x7 + .uleb128 0x1 + .align 2 +.Lend_of_FDE: diff --git a/newlib/libc/machine/mn10300/memcpy.S b/newlib/libc/machine/mn10300/memcpy.S index da4a21e30..8f2ab08a6 100644 --- a/newlib/libc/machine/mn10300/memcpy.S +++ b/newlib/libc/machine/mn10300/memcpy.S @@ -5,6 +5,7 @@ .type _memcpy,@function _memcpy: movm [d2,d3,a2,a3],(sp) +.Lend_of_prologue: mov d0,d2 mov d1,a0 mov d2,a1 @@ -16,7 +17,6 @@ _memcpy: bne .L37 cmp 15,d1 bls .L34 -.L29: setlb mov (a0),d0 mov d0,(a1) @@ -40,7 +40,6 @@ _memcpy: .L34: cmp 3,d1 bls .L37 -.L33: setlb mov (a0),d0 mov d0,(a1) @@ -49,11 +48,10 @@ _memcpy: add -4,d1 cmp 3,d1 lhi -#endif .L37: +#endif cmp 0,d1 beq .L36 -.L38: setlb movbu (a0),d0 movbu d0,(a1) @@ -63,6 +61,41 @@ _memcpy: lne .L36: mov d2,a0 +.Lepilogue: ret [d2,d3,a2,a3],16 -.Lfe1: - .size _memcpy,.Lfe1-_memcpy +.Lend_of_memcpy: + .size _memcpy, .Lend_of_memcpy - _memcpy + + .section .debug_frame,"",@progbits +.Lstart_of_debug_frame: + # Common Information Entry (CIE) + .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length +.Lstart_of_CIE: + .4byte 0xffffffff # CIE Identifier Tag + .byte 0x1 # CIE Version + .ascii "\0" # CIE Augmentation + .uleb128 0x1 # CIE Code Alignment Factor + .sleb128 -4 # CIE Data Alignment Factor + .byte 0x32 # CIE RA Column + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x9 + .uleb128 0x0 + .byte 0xb2 # DW_CFA_offset, column 0x32 + .uleb128 0x0 + .align 2 +.Lend_of_CIE: + + # Frame Description Entry (FDE) + .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length +.Lstart_of_FDE: + .4byte .Lstart_of_debug_frame # FDE CIE offset + .4byte _memcpy # FDE initial location + .4byte .Lend_of_memcpy - _memcpy # FDE address range + .byte 0x4 # DW_CFA_advance_loc4 + .4byte .Lend_of_prologue - _memcpy + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 0x4 + .byte 0x87 # DW_CFA_offset, column 0x7 + .uleb128 0x1 + .align 2 +.Lend_of_FDE: diff --git a/newlib/libc/machine/mn10300/memset.S b/newlib/libc/machine/mn10300/memset.S index 65b2ff53b..ac97e090d 100644 --- a/newlib/libc/machine/mn10300/memset.S +++ b/newlib/libc/machine/mn10300/memset.S @@ -1,63 +1,95 @@ .file "memset.S" .section .text - .global _memset + .global _memset .type _memset,@function _memset: - movm [d2,d3,a2,a3],(sp) - mov d0,d3 - mov d1,d2 - mov (28,sp),a1 - mov d3,a0 + movm [d2,d3,a2,a3], (sp) +.Lend_of_prologue: + mov d0, d3 + mov d1, d2 + mov (28, sp),a1 + mov d3, a0 #ifndef __OPTIMIZE_SIZE__ - cmp 3,a1 - bls .L41 - btst 3,d3 - bne .L41 + cmp 3, a1 + bls .L41 + btst 3, d3 + bne .L41 extbu d2 - mov d2,d1 - asl 8,d1 - or d2,d1 - mov d1,d0 - asl 16,d0 - or d0,d1 - cmp 15,a1 - bls .L36 -.L33: + mov d2, d1 + asl 8, d1 + or d2, d1 + mov d1, d0 + asl 16, d0 + or d0, d1 + cmp 15, a1 + bls .L36 setlb - mov d1,(a0) - inc4 a0 - mov d1,(a0) - inc4 a0 - mov d1,(a0) - inc4 a0 - mov d1,(a0) - inc4 a0 - add -16,a1 - cmp 15,a1 + mov d1, (a0) + inc4 a0 + mov d1, (a0) + inc4 a0 + mov d1, (a0) + inc4 a0 + mov d1, (a0) + inc4 a0 + add -16, a1 + cmp 15, a1 lhi .L36: - cmp 3,a1 - bls .L41 -.L37: + cmp 3, a1 + bls .L41 setlb - mov d1,(a0) - inc4 a0 - add -4,a1 - cmp 3,a1 + mov d1, (a0) + inc4 a0 + add -4, a1 + cmp 3, a1 lhi -#endif .L41: - cmp 0,a1 - beq .L47 -.L46: +#endif + cmp 0, a1 + beq .Lepilogue setlb - movbu d2,(a0) - inc a0 - sub 1,a1 + movbu d2, (a0) + inc a0 + sub 1, a1 lne -.L47: mov d3,a0 - ret [d2,d3,a2,a3],16 -.Lfe1: - .size _memset,.Lfe1-_memset +.Lepilogue: + ret [d2,d3,a2,a3], 16 +.Lend_of_memset: + .size _memset, .Lend_of_memset - _memset + + .section .debug_frame,"",@progbits +.Lstart_of_debug_frame: + # Common Information Entry (CIE) + .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length +.Lstart_of_CIE: + .4byte 0xffffffff # CIE Identifier Tag + .byte 0x1 # CIE Version + .ascii "\0" # CIE Augmentation + .uleb128 0x1 # CIE Code Alignment Factor + .sleb128 -4 # CIE Data Alignment Factor + .byte 0x32 # CIE RA Column + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x9 + .uleb128 0x0 + .byte 0xb2 # DW_CFA_offset, column 0x32 + .uleb128 0x0 + .align 2 +.Lend_of_CIE: + + # Frame Description Entry (FDE) + .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length +.Lstart_of_FDE: + .4byte .Lstart_of_debug_frame # FDE CIE offset + .4byte _memset # FDE initial location + .4byte .Lend_of_memset - _memset # FDE address range + .byte 0x4 # DW_CFA_advance_loc4 + .4byte .Lend_of_prologue - _memset + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 0x4 + .byte 0x87 # DW_CFA_offset, column 0x7 + .uleb128 0x1 + .align 2 +.Lend_of_FDE: diff --git a/newlib/libc/machine/mn10300/strchr.S b/newlib/libc/machine/mn10300/strchr.S index aa4799091..21d9dc10a 100644 --- a/newlib/libc/machine/mn10300/strchr.S +++ b/newlib/libc/machine/mn10300/strchr.S @@ -6,13 +6,13 @@ _strchr: movm [d2,d3,a2,a3],(sp) add -12,sp +.Lend_of_prologue: mov d0,a1 movbu d1,(7,sp) #ifndef __OPTIMIZE_SIZE__ btst 3,d0 bne .L20 clr d0 -.L24: setlb mov sp,a2 mov d0,d3 @@ -59,13 +59,12 @@ _strchr: beq .L28 .L27: mov a0,a1 -#endif .L20: +#endif movbu (a1),d0 cmp 0,d0 beq .L32 movbu (7,sp),d1 -.L35: setlb cmp d1,d0 beq .L36 @@ -79,10 +78,44 @@ _strchr: cmp d0,d3 beq .L36 mov 0,a0 - jmp .L37 + jmp .Lepilogue .L36: mov a1,a0 -.L37: +.Lepilogue: ret [d2,d3,a2,a3],28 -.Lfe1: - .size _strchr,.Lfe1-_strchr +.Lend_of_strchr: + .size _strchr, .Lend_of_strchr - _strchr + + .section .debug_frame,"",@progbits +.Lstart_of_debug_frame: + # Common Information Entry (CIE) + .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length +.Lstart_of_CIE: + .4byte 0xffffffff # CIE Identifier Tag + .byte 0x1 # CIE Version + .ascii "\0" # CIE Augmentation + .uleb128 0x1 # CIE Code Alignment Factor + .sleb128 -4 # CIE Data Alignment Factor + .byte 0x32 # CIE RA Column + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x9 + .uleb128 0x0 + .byte 0xb2 # DW_CFA_offset, column 0x32 + .uleb128 0x0 + .align 2 +.Lend_of_CIE: + + # Frame Description Entry (FDE) + .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length +.Lstart_of_FDE: + .4byte .Lstart_of_debug_frame # FDE CIE offset + .4byte _strchr # FDE initial location + .4byte .Lend_of_strchr - _strchr # FDE address range + .byte 0x4 # DW_CFA_advance_loc4 + .4byte .Lend_of_prologue - _strchr + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 0x4 + .byte 0x87 # DW_CFA_offset, column 0x7 + .uleb128 0x1 + .align 2 +.Lend_of_FDE: diff --git a/newlib/libc/machine/mn10300/strcmp.S b/newlib/libc/machine/mn10300/strcmp.S index 8aee9688a..c9c245b8d 100644 --- a/newlib/libc/machine/mn10300/strcmp.S +++ b/newlib/libc/machine/mn10300/strcmp.S @@ -5,6 +5,7 @@ .type _strcmp,@function _strcmp: movm [d2,d3,a2,a3],(sp) +.Lend_of_prologue: mov d0,a0 mov d1,a1 #ifndef __OPTIMIZE_SIZE__ @@ -16,7 +17,6 @@ _strcmp: cmp d0,d1 bne .L11 mov -16843009,d3 -.L5: setlb mov (a0),d0 mov d3,d1 @@ -26,7 +26,7 @@ _strcmp: and -2139062144,d1 beq .L6 clr d0 - jmp .L13 + jmp .Lepilogue .L6: inc4 a0 inc4 a1 @@ -34,8 +34,8 @@ _strcmp: mov (a1),d0 cmp d0,d1 leq -#endif .L11: +#endif setlb movbu (a1),d2 movbu (a0),d0 @@ -48,7 +48,41 @@ _strcmp: lra .L9: sub d2,d0 -.L13: +.Lepilogue: ret [d2,d3,a2,a3],16 -.Lfe1: - .size _strcmp,.Lfe1-_strcmp +.Lend_of_strcmp: + .size _strcmp, .Lend_of_strcmp - _strcmp + + .section .debug_frame,"",@progbits +.Lstart_of_debug_frame: + # Common Information Entry (CIE) + .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length +.Lstart_of_CIE: + .4byte 0xffffffff # CIE Identifier Tag + .byte 0x1 # CIE Version + .ascii "\0" # CIE Augmentation + .uleb128 0x1 # CIE Code Alignment Factor + .sleb128 -4 # CIE Data Alignment Factor + .byte 0x32 # CIE RA Column + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x9 + .uleb128 0x0 + .byte 0xb2 # DW_CFA_offset, column 0x32 + .uleb128 0x0 + .align 2 +.Lend_of_CIE: + + # Frame Description Entry (FDE) + .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length +.Lstart_of_FDE: + .4byte .Lstart_of_debug_frame # FDE CIE offset + .4byte _strcmp # FDE initial location + .4byte .Lend_of_strcmp - _strcmp # FDE address range + .byte 0x4 # DW_CFA_advance_loc4 + .4byte .Lend_of_prologue - _strcmp + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 0x4 + .byte 0x87 # DW_CFA_offset, column 0x7 + .uleb128 0x1 + .align 2 +.Lend_of_FDE: diff --git a/newlib/libc/machine/mn10300/strcpy.S b/newlib/libc/machine/mn10300/strcpy.S index d73d06f33..8afb0e09f 100644 --- a/newlib/libc/machine/mn10300/strcpy.S +++ b/newlib/libc/machine/mn10300/strcpy.S @@ -5,6 +5,7 @@ .type _strcpy,@function _strcpy: movm [d2,d3,a2,a3],(sp) +.Lend_of_prologue: mov d0,d3 mov d1,a0 mov d3,a1 @@ -22,7 +23,6 @@ _strcpy: mov -2139062144,d2 btst -2139062144,d1 bne .L2 -.L5: setlb mov (a0),d0 mov d0,(a1) @@ -35,9 +35,8 @@ _strcpy: and d0,d1 and d2,d1 leq -#endif .L2: -.L7: +#endif setlb movbu (a0),d0 movbu d0,(a1) @@ -46,6 +45,41 @@ _strcpy: cmp 0,d0 lne mov d3,a0 +.Lepilogue: ret [d2,d3,a2,a3],16 -.Lfe1: - .size _strcpy,.Lfe1-_strcpy +.Lend_of_strcpy: + .size _strcpy, .Lend_of_strcpy - _strcpy + + .section .debug_frame,"",@progbits +.Lstart_of_debug_frame: + # Common Information Entry (CIE) + .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length +.Lstart_of_CIE: + .4byte 0xffffffff # CIE Identifier Tag + .byte 0x1 # CIE Version + .ascii "\0" # CIE Augmentation + .uleb128 0x1 # CIE Code Alignment Factor + .sleb128 -4 # CIE Data Alignment Factor + .byte 0x32 # CIE RA Column + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x9 + .uleb128 0x0 + .byte 0xb2 # DW_CFA_offset, column 0x32 + .uleb128 0x0 + .align 2 +.Lend_of_CIE: + + # Frame Description Entry (FDE) + .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length +.Lstart_of_FDE: + .4byte .Lstart_of_debug_frame # FDE CIE offset + .4byte _strcpy # FDE initial location + .4byte .Lend_of_strcpy - _strcpy # FDE address range + .byte 0x4 # DW_CFA_advance_loc4 + .4byte .Lend_of_prologue - _strcpy + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 0x4 + .byte 0x87 # DW_CFA_offset, column 0x7 + .uleb128 0x1 + .align 2 +.Lend_of_FDE: diff --git a/newlib/libc/machine/mn10300/strlen.S b/newlib/libc/machine/mn10300/strlen.S index 91e88dd73..62cc972cf 100644 --- a/newlib/libc/machine/mn10300/strlen.S +++ b/newlib/libc/machine/mn10300/strlen.S @@ -5,6 +5,7 @@ .type _strlen,@function _strlen: movm [d2,d3,a2,a3],(sp) +.Lend_of_prologue: mov d0,a0 mov a0,a2 #ifndef __OPTIMIZE_SIZE__ @@ -19,7 +20,6 @@ _strlen: mov -2139062144,d2 btst -2139062144,d1 bne .L21 -.L15: setlb inc4 a0 mov (a0),d0 @@ -39,6 +39,41 @@ _strlen: bne .L19 sub a2,a0 mov a0,d0 +.Lepilogue: ret [d2,d3,a2,a3],16 -.Lfe1: - .size _strlen,.Lfe1-_strlen +.Lend_of_strlen: + .size _strlen, .Lend_of_strlen - _strlen + + .section .debug_frame,"",@progbits +.Lstart_of_debug_frame: + # Common Information Entry (CIE) + .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length +.Lstart_of_CIE: + .4byte 0xffffffff # CIE Identifier Tag + .byte 0x1 # CIE Version + .ascii "\0" # CIE Augmentation + .uleb128 0x1 # CIE Code Alignment Factor + .sleb128 -4 # CIE Data Alignment Factor + .byte 0x32 # CIE RA Column + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x9 + .uleb128 0x0 + .byte 0xb2 # DW_CFA_offset, column 0x32 + .uleb128 0x0 + .align 2 +.Lend_of_CIE: + + # Frame Description Entry (FDE) + .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length +.Lstart_of_FDE: + .4byte .Lstart_of_debug_frame # FDE CIE offset + .4byte _strlen # FDE initial location + .4byte .Lend_of_strlen - _strlen # FDE address range + .byte 0x4 # DW_CFA_advance_loc4 + .4byte .Lend_of_prologue - _strlen + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 0x4 + .byte 0x87 # DW_CFA_offset, column 0x7 + .uleb128 0x1 + .align 2 +.Lend_of_FDE: