Initial revision
[fw/sdcc] / device / lib / small / _strpbrk.asm
1 ;--------------------------------------------------------
2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 ; Version 2.1.9Ga Sun Jan 16 17:31:16 2000
4
5 ;--------------------------------------------------------
6         .module _strpbrk
7 ;--------------------------------------------------------
8 ; publics variables in this module
9 ;--------------------------------------------------------
10         .globl _strpbrk_PARM_2
11         .globl _strpbrk
12 ;--------------------------------------------------------
13 ; special function registers
14 ;--------------------------------------------------------
15 ;--------------------------------------------------------
16 ; special function bits 
17 ;--------------------------------------------------------
18 ;--------------------------------------------------------
19 ; internal ram data
20 ;--------------------------------------------------------
21         .area   DSEG    (DATA)
22 _strpbrk_PARM_2:
23         .ds     0x0003
24 _strpbrk_string_1_1:
25         .ds     0x0003
26 ;--------------------------------------------------------
27 ; overlayable items in internal ram 
28 ;--------------------------------------------------------
29         .area   OSEG    (OVR,DATA)
30 ;--------------------------------------------------------
31 ; indirectly addressable internal ram data
32 ;--------------------------------------------------------
33         .area   ISEG    (DATA)
34 ;--------------------------------------------------------
35 ; bit data
36 ;--------------------------------------------------------
37         .area   BSEG    (BIT)
38 ;--------------------------------------------------------
39 ; external ram data
40 ;--------------------------------------------------------
41         .area   XSEG    (XDATA)
42 ;--------------------------------------------------------
43 ; global & static initialisations
44 ;--------------------------------------------------------
45         .area GSINIT (CODE)
46 ;--------------------------------------------------------
47 ; code
48 ;--------------------------------------------------------
49         .area CSEG (CODE)
50         G$strpbrk$0$0 ==.
51 ;       _strpbrk.c 27
52 ;       -----------------------------------------
53 ;        function strpbrk
54 ;       -----------------------------------------
55 _strpbrk:
56         ar2 = 0x02
57         ar3 = 0x03
58         ar4 = 0x04
59         ar5 = 0x05
60         ar6 = 0x06
61         ar7 = 0x07
62         ar0 = 0x00
63         ar1 = 0x01
64 ;       _strpbrk.c 0
65         mov     _strpbrk_string_1_1,dpl
66         mov     (_strpbrk_string_1_1 + 1),dph
67         mov     (_strpbrk_string_1_1 + 2),b
68 ;       _strpbrk.c 34
69         mov     r5,_strpbrk_PARM_2
70         mov     r6,(_strpbrk_PARM_2 + 1)
71         mov     r7,(_strpbrk_PARM_2 + 2)
72 00103$:
73         mov     dpl,_strpbrk_string_1_1
74         mov     dph,(_strpbrk_string_1_1 + 1)
75         mov     b,(_strpbrk_string_1_1 + 2)
76         lcall   __gptrget
77 ; Peephole 166   removed redundant mov
78         mov  r0,a
79         mov  ar1,r0 
80 ; Peephole 110   removed ljmp by inverse jump logic
81         jz  00105$
82 00111$:
83 ;       _strpbrk.c 35
84         mov     _strchr_PARM_2,r1
85         push    ar5
86         push    ar6
87         push    ar7
88         mov     dpl,r5
89         mov     dph,r6
90         mov     b,r7
91         lcall   _strchr
92         mov     r0,dpl
93         mov     r1,dph
94         mov     r2,b
95         pop     ar7
96         pop     ar6
97         pop     ar5
98         mov     a,r0
99         orl     a,r1
100         orl     a,r2
101 ; Peephole 110   removed ljmp by inverse jump logic
102         jz  00103$
103 00112$:
104 ;       _strpbrk.c 36
105         mov     dpl,_strpbrk_string_1_1
106         mov     dph,(_strpbrk_string_1_1 + 1)
107         mov     b,(_strpbrk_string_1_1 + 2)
108 ; Peephole 132   changed ljmp to sjmp
109         sjmp 00106$
110 00105$:
111 ;       _strpbrk.c 39
112 ; Peephole 181   used 16 bit load of dptr
113         mov  dptr,#0x0000
114         mov     b,#0x00
115 00106$:
116         C$_strpbrk.c$40$1$1 ==.
117         XG$strpbrk$0$0 ==.
118         ret
119         .area   CSEG    (CODE)