source: trunk/libs/newlib/src/newlib/libc/machine/mn10300/memchr.S @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 1.8 KB
Line 
1        .file "memchr.S"
2
3        .section .text
4        .global _memchr
5        .type    _memchr,@function
6_memchr:
7        movm [d2,d3,a2,a3],(sp)
8.Lend_of_prologue:
9        mov d0,a0
10        mov d1,d2
11        mov (28,sp),a1
12#ifndef __OPTIMIZE_SIZE__
13        cmp 3,a1
14        bls .L44
15        mov a0,d3
16        btst 3,d3
17        bne .L44
18        mov a0,a2
19        mov 0,a3
20        clr d1
21        setlb
22        mov a3,d0
23        asl 8,d0
24        mov d2,a3
25        add d0,a3
26        inc d1
27        cmp 3,d1
28        lls
29        cmp 3,a1
30        bls .L48
31.L33:
32        mov (a2),d0
33        mov a3,d3
34        xor d3,d0
35        mov d0,d1
36        not d1
37        add -16843009,d0
38        and d1,d0
39        btst -2139062144,d0
40        beq .L34
41        mov a2,a0
42        clr d1
43        setlb
44        movbu (a0),d0
45        cmp d2,d0
46        beq .Lepilogue
47        inc a0
48        inc d1
49        cmp 3,d1
50        lls
51.L34:
52        add -4,a1
53        inc4 a2
54        cmp 3,a1
55        bhi .L33
56.L48:
57        mov a2,a0
58.L44:
59#endif
60        cmp 0,a1
61        beq .L50
62        setlb
63        movbu (a0),d0
64        cmp d2,d0
65        beq .Lepilogue
66        inc a0
67        sub 1,a1 
68        lne
69.L50:
70        mov 0,a0
71.Lepilogue:
72        ret [d2,d3,a2,a3],16
73.Lend_of_memchr:
74        .size    _memchr, .Lend_of_memchr - _memchr
75
76        .section        .debug_frame,"",@progbits
77.Lstart_of_debug_frame:
78        # Common Information Entry (CIE)
79        .4byte  .Lend_of_CIE - .Lstart_of_CIE   # CIE Length
80.Lstart_of_CIE:
81        .4byte   0xffffffff                     # CIE Identifier Tag
82        .byte    0x1                            # CIE Version
83        .ascii   "\0"                           # CIE Augmentation
84        .uleb128 0x1                            # CIE Code Alignment Factor
85        .sleb128 -4                             # CIE Data Alignment Factor
86        .byte    0x32                           # CIE RA Column
87        .byte    0xc                            # DW_CFA_def_cfa
88        .uleb128 0x9
89        .uleb128 0x0
90        .byte    0xb2                           # DW_CFA_offset, column 0x32
91        .uleb128 0x0
92        .align   2
93.Lend_of_CIE:
94       
95        # Frame Description Entry (FDE)
96        .4byte  .Lend_of_FDE - .Lstart_of_FDE   # FDE Length
97.Lstart_of_FDE:
98        .4byte   .Lstart_of_debug_frame         # FDE CIE offset
99        .4byte   _memchr                        # FDE initial location
100        .4byte   .Lend_of_memchr - _memchr      # FDE address range
101        .byte    0x4                            # DW_CFA_advance_loc4
102        .4byte   .Lend_of_prologue - _memchr
103        .byte    0xe                            # DW_CFA_def_cfa_offset
104        .uleb128 0x4
105        .byte    0x87                           # DW_CFA_offset, column 0x7
106        .uleb128 0x1
107        .align 2
108.Lend_of_FDE:
Note: See TracBrowser for help on using the repository browser.