Cygwin: access: Fix X_OK behaviour for backup operators and admins
[newlib-cygwin.git] / newlib / libc / machine / mn10300 / memchr.S
blob90b0f467e893e76ecb0c59f2c3dceb4dea485ca4
1         .file "memchr.S"
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
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: