📄 gcc-20030210-sh-linux-1.patch
字号:
GLOBAL(movstrSI56): mov.l @(52,r5),r0 mov.l r0,@(52,r4) .global GLOBAL(movstrSI52)+ FUNC(GLOBAL(movstrSI52)) GLOBAL(movstrSI52): mov.l @(48,r5),r0 mov.l r0,@(48,r4) .global GLOBAL(movstrSI48)+ FUNC(GLOBAL(movstrSI48)) GLOBAL(movstrSI48): mov.l @(44,r5),r0 mov.l r0,@(44,r4) .global GLOBAL(movstrSI44)+ FUNC(GLOBAL(movstrSI44)) GLOBAL(movstrSI44): mov.l @(40,r5),r0 mov.l r0,@(40,r4) .global GLOBAL(movstrSI40)+ FUNC(GLOBAL(movstrSI40)) GLOBAL(movstrSI40): mov.l @(36,r5),r0 mov.l r0,@(36,r4) .global GLOBAL(movstrSI36)+ FUNC(GLOBAL(movstrSI36)) GLOBAL(movstrSI36): mov.l @(32,r5),r0 mov.l r0,@(32,r4) .global GLOBAL(movstrSI32)+ FUNC(GLOBAL(movstrSI32)) GLOBAL(movstrSI32): mov.l @(28,r5),r0 mov.l r0,@(28,r4) .global GLOBAL(movstrSI28)+ FUNC(GLOBAL(movstrSI28)) GLOBAL(movstrSI28): mov.l @(24,r5),r0 mov.l r0,@(24,r4) .global GLOBAL(movstrSI24)+ FUNC(GLOBAL(movstrSI24)) GLOBAL(movstrSI24): mov.l @(20,r5),r0 mov.l r0,@(20,r4) .global GLOBAL(movstrSI20)+ FUNC(GLOBAL(movstrSI20)) GLOBAL(movstrSI20): mov.l @(16,r5),r0 mov.l r0,@(16,r4) .global GLOBAL(movstrSI16)+ FUNC(GLOBAL(movstrSI16)) GLOBAL(movstrSI16): mov.l @(12,r5),r0 mov.l r0,@(12,r4) .global GLOBAL(movstrSI12)+ FUNC(GLOBAL(movstrSI12)) GLOBAL(movstrSI12): mov.l @(8,r5),r0 mov.l r0,@(8,r4) .global GLOBAL(movstrSI8)+ FUNC(GLOBAL(movstrSI8)) GLOBAL(movstrSI8): mov.l @(4,r5),r0 mov.l r0,@(4,r4) .global GLOBAL(movstrSI4)+ FUNC(GLOBAL(movstrSI4)) GLOBAL(movstrSI4): mov.l @(0,r5),r0 mov.l r0,@(0,r4)+ .global GLOBAL(movstrSI0)+ FUNC(GLOBAL(movstrSI0)) GLOBAL(movstrSI0): rts nop + ENDFUNC(GLOBAL(movstrSI64))+ ENDFUNC(GLOBAL(movstrSI60))+ ENDFUNC(GLOBAL(movstrSI56))+ ENDFUNC(GLOBAL(movstrSI52))+ ENDFUNC(GLOBAL(movstrSI48))+ ENDFUNC(GLOBAL(movstrSI44))+ ENDFUNC(GLOBAL(movstrSI40))+ ENDFUNC(GLOBAL(movstrSI36))+ ENDFUNC(GLOBAL(movstrSI32))+ ENDFUNC(GLOBAL(movstrSI28))+ ENDFUNC(GLOBAL(movstrSI24))+ ENDFUNC(GLOBAL(movstrSI20))+ ENDFUNC(GLOBAL(movstrSI16))+ ENDFUNC(GLOBAL(movstrSI12))+ ENDFUNC(GLOBAL(movstrSI8))+ ENDFUNC(GLOBAL(movstrSI4))+ ENDFUNC(GLOBAL(movstrSI0))+ .align 4 .global GLOBAL(movstr)+ FUNC(GLOBAL(movstr)) GLOBAL(movstr): mov.l @(60,r5),r0 mov.l r0,@(60,r4)@@ -775,6 +895,8 @@ add #64,r5 bra GLOBAL(movstr) add #64,r4++ FUNC(GLOBAL(movstr)) #endif #ifdef L_movstr_i4@@ -783,6 +905,10 @@ .global GLOBAL(movstr_i4_odd) .global GLOBAL(movstrSI12_i4) + FUNC(GLOBAL(movstr_i4_even))+ FUNC(GLOBAL(movstr_i4_odd))+ FUNC(GLOBAL(movstrSI12_i4))+ .p2align 5 L_movstr_2mod4_end: mov.l r0,@(16,r4)@@ -791,6 +917,11 @@ .p2align 2 +GLOBAL(movstr_i4_even):+ mov.l @r5+,r0+ bra L_movstr_start_even+ mov.l @r5+,r1+ GLOBAL(movstr_i4_odd): mov.l @r5+,r1 add #-4,r4@@ -817,10 +948,8 @@ rts mov.l r3,@(12,r4) -GLOBAL(movstr_i4_even):- mov.l @r5+,r0- bra L_movstr_start_even- mov.l @r5+,r1+ ENDFUNC(GLOBAL(movstr_i4_even))+ ENDFUNC(GLOBAL(movstr_i4_odd)) .p2align 4 GLOBAL(movstrSI12_i4):@@ -831,12 +960,16 @@ mov.l r1,@(4,r4) rts mov.l r2,@(8,r4)++ ENDFUNC(GLOBAL(movstrSI12_i4))+ #endif #ifdef L_mulsi3 .global GLOBAL(mulsi3)+ FUNC(GLOBAL(mulsi3)) ! r4 = aabb ! r5 = ccdd@@ -869,7 +1002,7 @@ rts add r2,r0 -+ FUNC(GLOBAL(mulsi3)) #endif #endif /* ! __SH5__ */ #ifdef L_sdivsi3_i4@@ -879,6 +1012,7 @@ !! args in r4 and r5, result in fpul, clobber dr0, dr2 .global GLOBAL(sdivsi3_i4)+ FUNC(GLOBAL(sdivsi3_i4)) GLOBAL(sdivsi3_i4): lds r4,fpul float fpul,dr0@@ -888,6 +1022,8 @@ rts ftrc dr0,fpul + ENDFUNC(GLOBAL(sdivsi3_i4))+ #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__) !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2 @@ -896,6 +1032,7 @@ .mode SHcompact #endif .global GLOBAL(sdivsi3_i4)+ FUNC(GLOBAL(sdivsi3_i4)) GLOBAL(sdivsi3_i4): sts.l fpscr,@-r15 mov #8,r2@@ -910,6 +1047,8 @@ rts lds.l @r15+,fpscr + ENDFUNC(GLOBAL(sdivsi3_i4))+ #endif /* ! __SH5__ || __SH5__ == 32 */ #endif /* ! __SH4__ */ #endif@@ -924,9 +1063,10 @@ !! !! -!! args in r4 and r5, result in r0 clobber r1,r2,r3+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit .global GLOBAL(sdivsi3)+ FUNC(GLOBAL(sdivsi3)) #if __SHMEDIA__ #if __SH5__ == 32 .section .text..SHmedia32,"ax"@@ -1076,6 +1216,7 @@ div0: rts mov #0,r0 + ENDFUNC(GLOBAL(sdivsi3)) #endif /* ! __SHMEDIA__ */ #endif /* ! __SH4__ */ #endif@@ -1084,9 +1225,11 @@ .title "SH DIVIDE" !! 4 byte integer Divide code for the Hitachi SH #ifdef __SH4__-!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,+!! and t bit .global GLOBAL(udivsi3_i4)+ FUNC(GLOBAL(udivsi3_i4)) GLOBAL(udivsi3_i4): mov #1,r1 cmp/hi r1,r5@@ -1127,6 +1270,8 @@ L1: .double 2147483648 + ENDFUNC(GLOBAL(udivsi3_i4))+ #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__) !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4 @@ -1135,6 +1280,7 @@ .mode SHcompact #endif .global GLOBAL(udivsi3_i4)+ FUNC(GLOBAL(udivsi3_i4)) GLOBAL(udivsi3_i4): mov #1,r1 cmp/hi r1,r5@@ -1183,6 +1329,8 @@ #endif .double 2147483648 + ENDFUNC(GLOBAL(udivsi3_i4))+ #endif /* ! __SH5__ || __SH5__ == 32 */ #endif /* ! __SH4__ */ #endif@@ -1199,6 +1347,7 @@ !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit .global GLOBAL(udivsi3)+ FUNC(GLOBAL(udivsi3)) #if __SHMEDIA__ #if __SH5__ == 32@@ -1299,6 +1448,8 @@ ret: rts mov r4,r0 + ENDFUNC(GLOBAL(udivsi3))+ #endif /* ! __SHMEDIA__ */ #endif /* __SH4__ */ #endif@@ -1308,6 +1459,7 @@ .mode SHcompact #endif .global GLOBAL(set_fpscr)+ FUNC(GLOBAL(set_fpscr)) GLOBAL(set_fpscr): lds r4,fpscr mov.l LOCAL(set_fpscr_L1),r1@@ -1340,11 +1492,16 @@ .align 2 LOCAL(set_fpscr_L1): .long GLOBAL(fpscr_values)++ ENDFUNC(GLOBAL(set_fpscr))++#ifndef NO_FPSCR_VALUES #ifdef __ELF__ .comm GLOBAL(fpscr_values),8,4 #else .comm GLOBAL(fpscr_values),8 #endif /* ELF */+#endif /* NO_FPSCR_VALUES */ #endif /* SH3E / SH4 */ #endif /* L_set_fpscr */ #ifdef L_ic_invalidate@@ -1360,6 +1517,7 @@ blink tr0, r63 #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) .global GLOBAL(ic_invalidate)+ FUNC(GLOBAL(ic_invalidate)) GLOBAL(ic_invalidate): ocbwb @r4 mova 0f,r0@@ -1382,6 +1540,9 @@ nop .endr .endr++ ENDFUNC(GLOBAL(ic_invalidate))+ #endif /* SH4 */ #endif /* L_ic_invalidate */ diff -ruN gcc-20030210.orig/gcc/config/sh/libgcc-glibc.ver gcc-20030210/gcc/config/sh/libgcc-glibc.ver--- gcc-20030210.orig/gcc/config/sh/libgcc-glibc.ver Thu Jan 1 09:00:00 1970+++ gcc-20030210/gcc/config/sh/libgcc-glibc.ver Sat Feb 22 01:40:14 2003@@ -0,0 +1,21 @@+# In order to work around the very problems that force us to now generally+# create a libgcc.so, glibc reexported a number of routines from libgcc.a.+# By now choosing the same version tags for these specific routines, we+# maintain enough binary compatibility to allow future versions of glibc+# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.++# Note that we cannot use the default libgcc-glibc.ver file on sh,+# because GLIBC_2.0 does not exist on this architecture, as the first +# ever glibc release on the platform was GLIBC_2.2.++%inherit GCC_3.0 GLIBC_2.2+GLIBC_2.2 {+ __register_frame+ __register_frame_table+ __deregister_frame+ __register_frame_info+ __deregister_frame_info+ __frame_state_for+ __register_frame_info_table+}+diff -ruN gcc-20030210.orig/gcc/config/sh/linux.h gcc-20030210/gcc/config/sh/linux.h--- gcc-20030210.orig/gcc/config/sh/linux.h Tue Apr 16 05:27:42 2002+++ gcc-20030210/gcc/config/sh/linux.h Sat Feb 22 01:40:14 2003@@ -19,6 +19,10 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* We're not SYSVR4, not having /usr/ccs */+#undef MD_EXEC_PREFIX+#undef MD_STARTFILE_PREFIX+ /* Run-time Target Specification. */ #undef TARGET_VERSION #define TARGET_VERSION fputs (" (SH GNU/Linux with ELF)", stderr);@@ -39,6 +43,28 @@ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD +/* This was defined in linux.h. Define it here also. */+#undef DEFAULT_VTABLE_THUNKS+#define DEFAULT_VTABLE_THUNKS 1++/* Likewise. */+#define HANDLE_PRAGMA_PACK_PUSH_POP++/* Pick up the return address upon entry to a procedure. Used for+ dwarf2 unwind information. This also enables the table driven+ mechanism. */++#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, PR_REG)+#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (PR_REG)++#undef CPP_SPEC+#define CPP_SPEC "\+ %{m4:-D__SH4__} \+ %{!m4:%(cpp_default_cpu_spec)} \+ %(subtarget_cpp_spec) \+ %(subtarget_cpp_ptr_spec) \+ %(subtarget_cpp_endian_spec) "+ #undef SUBTARGET_CPP_SPEC #define SUBTARGET_CPP_SPEC "\ %{fPIC:-D__PIC__ -D__pic__} \@@ -55,36 +81,45 @@ #undef CPP_DEFAULT_CPU_SPEC #define CPP_DEFAULT_CPU_SPEC "-D__SH3__ -D__sh3__" - #undef CPP_PREDEFINES #define CPP_PREDEFINES "-D__ELF__ -Dunix -D__sh__ -D__gnu_linux__ -Dlinux -Asystem=posix" +/* The GNU C++ standard library requires that these macros be defined. */+#undef CPLUSPLUS_CPP_SPEC+#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"+ #undef ASM_SPEC-#define ASM_SPEC "%{!mb:-little} %{mrelax:-relax}"+#define ASM_SPEC "%{mb:-big} %{!mb:-little} %{mrelax:-relax}" #undef CC1_SPEC #define CC1_SPEC \- "-musermode %{!mb:-ml} %{!m3e:%{!m4:-m3}}"--#undef CC1PLUS_SPEC-#define CC1PLUS_SPEC \- "-musermode %{!mb:-ml} %{!m3e:%{!m4:-m3}}"+ "-musermode %{!mb:-ml} %{!m4:-m3} %{profile:-p}" +/* XXX: It's wrong if prefix != /usr */ #undef LINK_SPEC #define LINK_SPEC \- "%{!mb:-m shlelf_linux} %{mrelax:-relax} \+ "%{!mb:-m shlelf_linux -EL} %{mb:-m shelf_linux -EB} %{mrelax:-relax} \ %{shared:-shared} \ %{!static: \ %{rdynamic:-export-dynamic} \ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \- %{!rpath:-rpath /lib}} \+ %{!mb:%{!m4:-rpath-link /usr/sh-linux/lib }} \+ %{!mb:%{m4:-rpath-link /usr/sh-linux/lib/m4 }} \+ %{mb:%{!m4:-rpath-link /usr/sh-linux/lib/mb }} \+ %{mb:%{m4:-rpath-link /usr/sh-linux/lib/mb/m4 }}} \ %{static:-static}" #undef LIB_SPEC+#undef LIB_SPEC #define LIB_SPEC \ "%{shared: -lc} \- %{!shared: %{pthread:-lthread} \- %{profile:-lc_p} %{!profile: -lc}}"+ %{!shared: %{mieee:-lieee} %{pthread:-lpthread} \+ %{profile:-lc_p} %{!profile: -lc}}"+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -