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 "memcpy.S" 18 19 .section .text 20 .global _memcpy 21 .type _memcpy,@function 22_memcpy: 23 movm [d2,d3,a2,a3],(sp) 24.Lend_of_prologue: 25 mov d0,d2 26 mov d1,a0 27 mov d2,a1 28 mov (28,sp),d1 29#ifndef __OPTIMIZE_SIZE__ 30 mov a0,d0 31 or d2,d0 32 btst 3,d0 33 bne .L37 34 cmp 15,d1 35 bls .L34 36 setlb 37 mov (a0),d0 38 mov d0,(a1) 39 inc4 a0 40 inc4 a1 41 mov (a0),d0 42 mov d0,(a1) 43 inc4 a0 44 inc4 a1 45 mov (a0),d0 46 mov d0,(a1) 47 inc4 a0 48 inc4 a1 49 mov (a0),d0 50 mov d0,(a1) 51 inc4 a0 52 inc4 a1 53 add -16,d1 54 cmp 15,d1 55 lhi 56.L34: 57 cmp 3,d1 58 bls .L37 59 setlb 60 mov (a0),d0 61 mov d0,(a1) 62 inc4 a0 63 inc4 a1 64 add -4,d1 65 cmp 3,d1 66 lhi 67.L37: 68#endif 69 cmp 0,d1 70 beq .L36 71 setlb 72 movbu (a0),d0 73 movbu d0,(a1) 74 inc a0 75 inc a1 76 sub 1,d1 77 lne 78.L36: 79 mov d2,a0 80.Lepilogue: 81 ret [d2,d3,a2,a3],16 82.Lend_of_memcpy: 83 .size _memcpy, .Lend_of_memcpy - _memcpy 84 85 .section .debug_frame,"",@progbits 86.Lstart_of_debug_frame: 87 # Common Information Entry (CIE) 88 .4byte .Lend_of_CIE - .Lstart_of_CIE # CIE Length 89.Lstart_of_CIE: 90 .4byte 0xffffffff # CIE Identifier Tag 91 .byte 0x1 # CIE Version 92 .ascii "\0" # CIE Augmentation 93 .uleb128 0x1 # CIE Code Alignment Factor 94 .sleb128 -4 # CIE Data Alignment Factor 95 .byte 0x32 # CIE RA Column 96 .byte 0xc # DW_CFA_def_cfa 97 .uleb128 0x9 98 .uleb128 0x0 99 .byte 0xb2 # DW_CFA_offset, column 0x32 100 .uleb128 0x0 101 .align 2 102.Lend_of_CIE: 103 104 # Frame Description Entry (FDE) 105 .4byte .Lend_of_FDE - .Lstart_of_FDE # FDE Length 106.Lstart_of_FDE: 107 .4byte .Lstart_of_debug_frame # FDE CIE offset 108 .4byte _memcpy # FDE initial location 109 .4byte .Lend_of_memcpy - _memcpy # FDE address range 110 .byte 0x4 # DW_CFA_advance_loc4 111 .4byte .Lend_of_prologue - _memcpy 112 .byte 0xe # DW_CFA_def_cfa_offset 113 .uleb128 0x4 114 .byte 0x87 # DW_CFA_offset, column 0x7 115 .uleb128 0x1 116 .align 2 117.Lend_of_FDE: 118