]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/config/mn10200/lib1funcs.asm
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / config / mn10200 / lib1funcs.asm
diff --git a/gcc/config/mn10200/lib1funcs.asm b/gcc/config/mn10200/lib1funcs.asm
deleted file mode 100644 (file)
index 90ae1be..0000000
+++ /dev/null
@@ -1,604 +0,0 @@
-/* libgcc routines for Matsushita mn10200.
-   Copyright (C) 1997 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-In addition to the permissions in the GNU General Public License, the
-Free Software Foundation gives you unlimited permission to link the
-compiled version of this file into combinations with other programs,
-and to distribute those combinations without any restriction coming
-from the use of this file.  (The General Public License restrictions
-do apply in other respects; for example, they cover modification of
-the file, and distribution when not linked into a combine
-executable.)
-
-This file is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#ifdef L_divhi3
-       /* Derive signed division/modulo from unsigned "divu" instruction.  */
-       .text
-       .globl ___divhi3
-       .type ___divhi3,@function
-___divhi3:
-
-       /* We're going to need some scratch registers, so save d2/d3
-          into the stack.  */
-       add -8,a3
-       movx d2,(0,a3)
-       movx d3,(4,a3)
-
-       /* Loading zeros into registers now allows us to use them
-          in the compare instructions, which saves a total of
-          two bytes (egad).  */
-       sub d3,d3
-       sub d2,d2
-       sub a0,a0
-
-       /* If first operand is negative, then make it positive.
-          It will be contained in d2 just before .L1. 
-
-          a0 tells us if the first operand was negated.  */
-       cmp d2,d0
-       bge .L0
-       sub d0,d2
-       mov 1,a0
-       bra .L1
-.L0:
-       mov d0,d2
-.L1:
-       /* If the second operand is negative, then make it positive.
-          It will be contained in d3 just before .L3. 
-
-          d0 tells us if the second operand was negated.  */
-       cmp d3,d1
-       bge .L2
-       sub d1,d3
-       mov 1,d0
-       bra .L3
-.L2:
-       sub d0,d0
-       mov d1,d3
-.L3:
-       /* Loading d1 with zero here allows us to save one byte
-          in the comparison below.  */
-
-       sub d1,d1
-
-       /* Make sure to clear the mdr register, then do the unsigned
-          division.  Result will be in d2/mdr.  */
-       mov d1,mdr
-       divu d3,d2
-
-       /* Negate the remainder based on the first argument negation
-          flag only.  */
-       cmp d1,a0
-       beq .L4
-       mov mdr,d3
-       sub d3,d1
-       bra .L5
-.L4:
-       mov mdr,d1
-
-.L5:
-       /* Negate the result if either, but not both of the inputs
-          were negated.  */
-       mov a0,d3
-       xor d3,d0
-       beq .L6
-       sub d0,d0
-       sub d2,d0
-       bra .L7
-.L6:
-       mov d2,d0
-.L7:
-       
-       /* Restore our scratch registers, deallocate our stack and return.  */
-       movx (0,a3),d2
-       movx (4,a3),d3
-       add 8,a3
-       rts
-       .size ___divhi3,.-___divhi3
-#endif
-
-#ifdef L_modhi3
-       .text
-       .globl ___modhi3
-       .type ___modhi3,@function
-___modhi3:
-       jsr ___divhi3
-       mov d1,d0
-       rts
-       .size ___modhi3,.-___modhi3
-#endif
-
-#ifdef L_addsi3
-       .text
-       .globl ___addsi3
-       .type  ___addsi3,@function
-___addsi3:
-       add -4,a3
-       movx d2,(0,a3)
-       mov (8,a3),d2
-       add d2,d0
-       mov (10,a3),d2
-       addc d2,d1
-       movx (0,a3),d2
-       add 4,a3
-       rts
-
-       .size ___addsi3,.-___addsi3
-#endif
-
-#ifdef L_subsi3
-       .text
-       .globl ___subsi3
-       .type  ___subsi3,@function
-___subsi3:
-       add -4,a3
-       movx d2,(0,a3)
-       mov (8,a3),d2
-       sub d2,d0
-       mov (10,a3),d2
-       subc d2,d1
-       movx (0,a3),d2
-       add 4,a3
-       rts
-
-       .size ___subsi3,.-___subsi3
-#endif
-
-#ifdef L_mulsi3
-       .text
-       .globl ___mulsi3
-       .type  ___mulsi3,@function
-___mulsi3:
-       add -4,a3
-       mov a1,(0,a3)
-       mov d0,a0
-       /* Multiply arg0 msb with arg1 lsb.
-          arg0 msb is in register d1,
-          arg1 lsb is in memory.  */
-       mov (8,a3),d0
-       mulu d0,d1
-       mov d1,a1
-
-       /* Multiply arg0 lsb with arg1 msb.
-          arg0 msb is in register a0,
-          arg1 lsb is in memory.  */
-       mov a0,d0
-       mov (10,a3),d1
-       mulu d0,d1
-
-       /* Add the cross products.  */
-       add d1,a1
-
-       /* Now multiply arg0 lsb with arg1 lsb.  */
-       mov (8,a3),d1
-       mulu d1,d0
-
-       /* Add in the upper 16 bits to the cross product sum.  */
-       mov mdr,d1
-       add a1,d1
-       mov (0,a3),a1
-       add 4,a3
-       rts
-
-       .size ___mulsi3,.-___mulsi3
-#endif
-
-#ifdef  L_ashlsi3
-       .text
-       .globl ___ashlsi3
-       .type  ___ashlsi3,@function
-___ashlsi3:
-       mov (4,a3),a0
-       cmp 0,a0
-       beq .L0
-.L1:
-       add d0,d0
-       addc d1,d1
-       add -1,a0
-       bne .L1
-.L0:
-       rts
-
-       .size ___ashlsi3,.-___ashlsi3
-#endif
-
-#ifdef  L_lshrsi3
-       .text
-       .globl ___lshrsi3
-       .type  ___lshrsi3,@function
-___lshrsi3:
-       mov (4,a3),a0
-       cmp 0,a0
-       beq .L0
-.L1:
-       lsr d1
-       ror d0
-       add -1,a0
-       bne .L1
-.L0:
-       rts
-
-       .size ___lshrsi3,.-___lshrsi3
-#endif
-
-#ifdef  L_ashrsi3
-       .text
-       .globl ___ashrsi3
-       .type  ___ashrsi3,@function
-___ashrsi3:
-       mov (4,a3),a0
-       cmp 0,a0
-       beq .L0
-.L1:
-       asr d1
-       ror d0
-       add -1,a0
-       bne .L1
-.L0:
-       rts
-
-       .size ___ashrsi3,.-___ashrsi3
-#endif
-
-/* All functions beyond this point pass their arguments in registers! */
-#ifdef  L_negsi2_d0
-       .text
-       .globl ___negsi2_d0
-       .type  ___negsi2_d0,@function
-___negsi2_d0:
-       add -8,a3
-       movx d3,(0,a3)
-       movx d2,(4,a3)
-       mov d0,d2
-       mov d1,d3
-       sub d0,d0
-       sub d1,d1
-       sub d2,d0
-       subc d3,d1
-       movx (0,a3),d3
-       movx (4,a3),d2
-       add 8,a3
-       rts
-
-       .size ___negsi2_d0,.-___negsi2_d0
-#endif
-
-#ifdef  L_negsi2_d2
-       .text
-       .globl ___negsi2_d2
-       .type  ___negsi2_d2,@function
-___negsi2_d2:
-       add -8,a3
-       movx d1,(0,a3)
-       movx d0,(4,a3)
-       mov d2,d0
-       mov d3,d1
-       sub d2,d2
-       sub d3,d3
-       sub d0,d2
-       subc d1,d3
-       movx (0,a3),d1
-       movx (4,a3),d0
-       add 8,a3
-       rts
-
-       .size ___negsi2_d2,.-___negsi2_d2
-#endif
-
-#ifdef  L_zero_extendpsisi2_d0
-       .text
-       .globl ___zero_extendpsisi2_d0
-       .type  ___zero_extendpsisi2_d0,@function
-___zero_extendpsisi2_d0:
-       add -4,a3
-       movx d0,(0,a3)
-       movbu (2,a3),d1
-       add 4,a3
-       rts
-
-       .size ___zero_extendpsisi2_d0,.-___zero_extendpsisi2_d0
-#endif
-
-#ifdef  L_zero_extendpsisi2_d2
-       .text
-       .globl ___zero_extendpsisi2_d2
-       .type  ___zero_extendpsisi2_d2,@function
-___zero_extendpsisi2_d2:
-       add -4,a3
-       movx d2,(0,a3)
-       movbu (2,a3),d3
-       add 4,a3
-       rts
-
-       .size ___zero_extendpsisi2_d2,.-___zero_extendpsisi2_d2
-#endif
-
-#ifdef  L_sign_extendpsisi2_d0
-       .text
-       .globl ___sign_extendpsisi2_d0
-       .type  ___sign_extendpsisi2_d0,@function
-___sign_extendpsisi2_d0:
-       add -4,a3
-       movx d0,(0,a3)
-       movb (2,a3),d1
-       add 4,a3
-       rts
-
-       .size ___sign_extendpsisi2_d0,.-___sign_extendpsisi2_d0
-#endif
-
-#ifdef  L_sign_extendpsisi2_d2
-       .text
-       .globl ___sign_extendpsisi2_d2
-       .type  ___sign_extendpsisi2_d2,@function
-___sign_extendpsisi2_d2:
-       add -4,a3
-       movx d2,(0,a3)
-       movb (2,a3),d3
-       add 4,a3
-       rts
-
-       .size ___sign_extendpsisi2_d2,.-___sign_extendpsisi2_d2
-#endif
-
-#ifdef  L_truncsipsi2_d0_d0
-       .text
-       .globl ___truncsipsi2_d0_d0
-       .type  ___truncsipsi2_d0_d0,@function
-___truncsipsi2_d0_d0:
-       add -4,a3
-       mov d0,(a3)
-       mov d1,(2,a3)
-       movx (0,a3),d0
-       add 4,a3
-       rts
-
-       .size ___truncsipsi2_d0_d0,.-___truncsipsi2_d0_d0
-#endif
-
-#ifdef  L_truncsipsi2_d0_d1
-       .text
-       .globl ___truncsipsi2_d0_d1
-       .type  ___truncsipsi2_d0_d1,@function
-___truncsipsi2_d0_d1:
-       add -4,a3
-       mov d0,(a3)
-       mov d1,(2,a3)
-       movx (0,a3),d1
-       add 4,a3
-       rts
-
-       .size ___truncsipsi2_d0_d1,.-___truncsipsi2_d0_d1
-#endif
-
-#ifdef  L_truncsipsi2_d0_d2
-       .text
-       .globl ___truncsipsi2_d0_d2
-       .type  ___truncsipsi2_d0_d2,@function
-___truncsipsi2_d0_d2:
-       add -4,a3
-       mov d0,(a3)
-       mov d1,(2,a3)
-       movx (0,a3),d2
-       add 4,a3
-       rts
-
-       .size ___truncsipsi2_d0_d2,.-___truncsipsi2_d0_d2
-#endif
-
-#ifdef  L_truncsipsi2_d0_d3
-       .text
-       .globl ___truncsipsi2_d0_d3
-       .type  ___truncsipsi2_d0_d3,@function
-___truncsipsi2_d0_d3:
-       add -4,a3
-       mov d0,(a3)
-       mov d1,(2,a3)
-       movx (0,a3),d3
-       add 4,a3
-       rts
-
-       .size ___truncsipsi2_d0_d3,.-___truncsipsi2_d0_d3
-#endif
-
-#ifdef  L_truncsipsi2_d2_d0
-       .text
-       .globl ___truncsipsi2_d2_d0
-       .type  ___truncsipsi2_d2_d0,@function
-___truncsipsi2_d2_d0:
-       add -4,a3
-       mov d2,(a3)
-       mov d3,(2,a3)
-       movx (0,a3),d0
-       add 4,a3
-       rts
-
-       .size ___truncsipsi2_d2_d0,.-___truncsipsi2_d2_d0
-#endif
-
-#ifdef  L_truncsipsi2_d2_d1
-       .text
-       .globl ___truncsipsi2_d2_d1
-       .type  ___truncsipsi2_d2_d1,@function
-___truncsipsi2_d2_d1:
-       add -4,a3
-       mov d2,(a3)
-       mov d3,(2,a3)
-       movx (0,a3),d1
-       add 4,a3
-       rts
-
-       .size ___truncsipsi2_d2_d1,.-___truncsipsi2_d2_d1
-#endif
-
-#ifdef  L_truncsipsi2_d2_d2
-       .text
-       .globl ___truncsipsi2_d2_d2
-       .type  ___truncsipsi2_d2_d2,@function
-___truncsipsi2_d2_d2:
-       add -4,a3
-       mov d2,(a3)
-       mov d3,(2,a3)
-       movx (0,a3),d2
-       add 4,a3
-       rts
-
-       .size ___truncsipsi2_d2_d2,.-___truncsipsi2_d2_d2
-#endif
-
-#ifdef  L_truncsipsi2_d2_d3
-       .text
-       .globl ___truncsipsi2_d2_d3
-       .type  ___truncsipsi2_d2_d3,@function
-___truncsipsi2_d2_d3:
-       add -4,a3
-       mov d2,(a3)
-       mov d3,(2,a3)
-       movx (0,a3),d3
-       add 4,a3
-       rts
-
-       .size ___truncsipsi2_d2_d3,.-___truncsipsi2_d2_d3
-#endif
-
-
-#ifdef  L_cmpsi2
-       .text
-       .globl ___cmpsi2
-       .type  ___cmpsi2,@function
-___cmpsi2:
-       add -4,a3
-       mov a1,(0,a3)
-        mov (10,a3),a1
-        mov (8,a3),a0
-        cmp a1,d1
-        blt .L9
-        bgt .L6
-        cmp a0,d0
-        bcc .L5
-.L9:
-        sub d0,d0
-        jmp .L8
-.L5:
-        cmp a0,d0
-        bhi .L6
-        mov 1,d0
-        jmp .L8
-.L6:
-        mov 2,d0
-.L8:
-       mov (0,a3),a1
-       add 4,a3
-        rts
-       .size ___cmpsi2,.-___cmpsi2
-#endif
-
-#ifdef  L_ucmpsi2
-       .text
-       .globl ___ucmpsi2
-       .type  ___ucmpsi2,@function
-___ucmpsi2:
-       add -4,a3
-       mov a1,(0,a3)
-        mov (10,a3),a1
-        mov (8,a3),a0
-        cmp a1,d1
-        bcs .L9
-        bhi .L6
-        cmp a0,d0
-        bcc .L5
-.L9:
-        sub d0,d0
-        jmp .L8
-.L5:
-        cmp a0,d0
-        bhi .L6
-        mov 1,d0
-        jmp .L8
-.L6:
-        mov 2,d0
-.L8:
-       mov (0,a3),a1
-       add 4,a3
-        rts
-       .size ___ucmpsi2,.-___ucmpsi2
-#endif
-
-
-#ifdef L_prologue
-       .text
-       .globl ___prologue
-       .type ___prologue,@function
-___prologue:
-       mov (0,a3),a0
-       add -16,a3
-       movx d2,(4,a3)
-       movx d3,(8,a3)
-       mov a1,(12,a3)
-       mov a2,(16,a3)
-       mov a0,(0,a3)
-       rts
-       .size ___prologue,.-___prologue
-#endif
-
-#ifdef L_epilogue_a0
-       .text
-       .globl ___epilogue_a0
-       .type ___epilogue_a0,@function
-___epilogue_a0:
-       mov (0,a3),a0
-       movx (4,a3),d2
-       movx (8,a3),d3
-       mov (12,a3),a1
-       mov (16,a3),a2
-       add 16,a3
-       mov a0,(0,a3)
-       rts
-       .size ___epilogue_a0,.-___epilogue_a0
-#endif
-
-#ifdef L_epilogue_d0
-       .text
-       .globl ___epilogue_d0
-       .type ___epilogue_d0,@function
-___epilogue_d0:
-       movx (0,a3),d0
-       movx (4,a3),d2
-       movx (8,a3),d3
-       mov (12,a3),a1
-       mov (16,a3),a2
-       add 16,a3
-       movx d0,(0,a3)
-       rts
-       .size ___epilogue_d0,.-___epilogue_d0
-#endif
-
-#ifdef L_epilogue_noreturn
-       .text
-       .globl ___epilogue_noreturn
-       .type ___epilogue_noreturn,@function
-___epilogue_noreturn:
-       movx (0,a3),d2
-       movx (4,a3),d3
-       mov (8,a3),a1
-       mov (12,a3),a2
-       add 16,a3
-       rts
-       .size ___epilogue_noreturn,.-___epilogue_noreturn
-#endif