1/* 2Copyright (c) 1990 The Regents of the University of California. 3All rights reserved. 4 5Redistribution and use in source and binary forms are permitted 6provided that the above copyright notice and this paragraph are 7duplicated in all such forms and that any documentation, 8and/or other materials related to such 9distribution and use acknowledge that the software was developed 10by the University of California, Berkeley. The name of the 11University may not be used to endorse or promote products derived 12from this software without specific prior written permission. 13THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 14IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 15WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 16 */ 17 .file "strcpy.S" 18 19 .section .text 20 .global _strcpy 21 .type _strcpy,@function 22_strcpy: 23 movm [d2,d3,a2,a3],(sp) 24.Lend_of_prologue: 25 mov d0,d3 26 mov d1,a0 27 mov d3,a1 28 mov a0,d0 29#ifndef __OPTIMIZE_SIZE__ 30 or d3,d0 31 btst 3,d0 32 bne .L2 33 mov (a0),d0 34 mov -16843009,a2 35 mov a2,d1 36 add d0,d1 37 not d0 38 and d0,d1 39 mov -2139062144,d2 40 btst -2139062144,d1 41 bne .L2 42 setlb 43 mov (a0),d0 44 mov d0,(a1) 45 inc4 a0 46 inc4 a1 47 mov (a0),d0 48 mov a2,d1 49 add d0,d1 50 not d0 51 and d0,d1 52 and d2,d1 53 leq 54.L2: 55#endif 56 setlb 57 movbu (a0),d0 58 movbu d0,(a1) 59 inc a0 60 inc a1 61 cmp 0,d0 62 lne 63 mov d3,a0 64.Lepilogue: 65 ret [d2,d3,a2,a3],16 66.Lend_of_strcpy: 67 .size _strcpy, .Lend_of_strcpy - _strcpy 68 69 .section .debug_frame,"",@progbits 70.Lstart_of_debug_frame: 71 # Common Information Entry (CIE) 72 .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length 73.Lstart_of_CIE: 74 .4byte 0xffffffff # CIE Identifier Tag 75 .byte 0x1 # CIE Version 76 .ascii "\0" # CIE Augmentation 77 .uleb128 0x1 # CIE Code Alignment Factor 78 .sleb128 -4 # CIE Data Alignment Factor 79 .byte 0x32 # CIE RA Column 80 .byte 0xc # DW_CFA_def_cfa 81 .uleb128 0x9 82 .uleb128 0x0 83 .byte 0xb2 # DW_CFA_offset, column 0x32 84 .uleb128 0x0 85 .align 2 86.Lend_of_CIE: 87 88 # Frame Description Entry (FDE) 89 .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length 90.Lstart_of_FDE: 91 .4byte .Lstart_of_debug_frame # FDE CIE offset 92 .4byte _strcpy # FDE initial location 93 .4byte .Lend_of_strcpy - _strcpy # FDE address range 94 .byte 0x4 # DW_CFA_advance_loc4 95 .4byte .Lend_of_prologue - _strcpy 96 .byte 0xe # DW_CFA_def_cfa_offset 97 .uleb128 0x4 98 .byte 0x87 # DW_CFA_offset, column 0x7 99 .uleb128 0x1 100 .align 2 101.Lend_of_FDE: 102