1 1 ;--------------------------------------------------------
2 2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 3 ; Version 2.1.9Ga Sun Jan 16 17:31:33 2000
5 5 ;--------------------------------------------------------
7 7 ;--------------------------------------------------------
8 8 ; publics variables in this module
9 9 ;--------------------------------------------------------
10 10 .globl _strcmp_PARM_2
12 12 ;--------------------------------------------------------
13 13 ; special function registers
14 14 ;--------------------------------------------------------
15 15 ;--------------------------------------------------------
16 16 ; special function bits
17 17 ;--------------------------------------------------------
18 18 ;--------------------------------------------------------
19 19 ; internal ram data
20 20 ;--------------------------------------------------------
22 0000 22 _strcmp_sloc0_1_0:
24 0001 24 _strcmp_sloc1_1_0:
26 26 ;--------------------------------------------------------
27 27 ; overlayable items in internal ram
28 28 ;--------------------------------------------------------
29 29 .area OSEG (OVR,DATA)
30 30 ;--------------------------------------------------------
31 31 ; indirectly addressable internal ram data
32 32 ;--------------------------------------------------------
34 34 ;--------------------------------------------------------
36 36 ;--------------------------------------------------------
38 38 ;--------------------------------------------------------
39 39 ; external ram data
40 40 ;--------------------------------------------------------
42 0000 42 _strcmp_PARM_2:
44 0003 44 _strcmp_src_1_1:
46 0006 46 _strcmp_ret_1_1:
48 48 ;--------------------------------------------------------
49 49 ; global & static initialisations
50 50 ;--------------------------------------------------------
51 51 .area GSINIT (CODE)
52 52 ;--------------------------------------------------------
54 54 ;--------------------------------------------------------
56 0000 56 G$strcmp$0$0 ==.
58 58 ; -----------------------------------------
60 60 ; -----------------------------------------
72 0002 C0 83 72 push dph
73 0004 C0 82 73 push dpl
74 0006 90s00r03 74 mov dptr,#_strcmp_src_1_1
76 000B F0 76 movx @dptr,a
79 000F F0 79 movx @dptr,a
82 0013 F0 82 movx @dptr,a
84 0014 90s00r03 84 mov dptr,#_strcmp_src_1_1
85 0017 E0 85 movx a,@dptr
88 001A E0 88 movx a,@dptr
91 001D E0 91 movx a,@dptr
93 001F 90s00r00 93 mov dptr,#_strcmp_PARM_2
94 0022 E0 94 movx a,@dptr
95 0023 F5*01 95 mov _strcmp_sloc1_1_0,a
97 0026 E0 97 movx a,@dptr
98 0027 F5*02 98 mov (_strcmp_sloc1_1_0 + 1),a
100 002A E0 100 movx a,@dptr
101 002B F5*03 101 mov (_strcmp_sloc1_1_0 + 2),a
103 002D 85*01 82 103 mov dpl,_strcmp_sloc1_1_0
104 0030 85*02 83 104 mov dph,(_strcmp_sloc1_1_0 + 1)
105 0033 85*03 F0 105 mov b,(_strcmp_sloc1_1_0 + 2)
106 0036 12s00r00 106 lcall __gptrget
107 0039 F5*00 107 mov _strcmp_sloc0_1_0,a
108 003B 8A 82 108 mov dpl,r2
109 003D 8B 83 109 mov dph,r3
110 003F 8C F0 110 mov b,r4
111 0041 12s00r00 111 lcall __gptrget
112 112 ; Peephole 106 removed redundant mov
115 0046 95*00 115 subb a,_strcmp_sloc0_1_0
116 116 ; Peephole 166 removed redundant mov
118 0049 89 00 118 mov ar0,r1
120 004C 95 E0 120 subb a,acc
122 004F 90s00r06 122 mov dptr,#_strcmp_ret_1_1
124 0053 F0 124 movx @dptr,a
127 0056 F0 127 movx @dptr,a
129 129 ; Peephole 109 removed ljmp by inverse jump logic
130 0058 70 1E 130 jnz 00104$
132 005A E5*00 132 mov a,_strcmp_sloc0_1_0
133 133 ; Peephole 110 removed ljmp by inverse jump logic
134 005C 60 1A 134 jz 00104$
138 005F BA 00 01 138 cjne r2,#0x00,00119$
141 0063 90s00r03 141 mov dptr,#_strcmp_src_1_1
143 0067 F0 143 movx @dptr,a
146 006A F0 146 movx @dptr,a
149 006D F0 149 movx @dptr,a
150 006E 05*01 150 inc _strcmp_sloc1_1_0
152 0071 B5*01 02 152 cjne a,_strcmp_sloc1_1_0,00120$
153 0074 05*02 153 inc (_strcmp_sloc1_1_0 + 1)
155 155 ; Peephole 132 changed ljmp to sjmp
156 0076 80 B5 156 sjmp 00102$
159 0078 90s00r03 159 mov dptr,#_strcmp_src_1_1
161 007C F0 161 movx @dptr,a
164 007F F0 164 movx @dptr,a
167 0082 F0 167 movx @dptr,a
169 169 ; Peephole 111 removed ljmp by inverse jump logic
170 0084 30 E7 0A 170 jnb acc.7,00108$
173 0087 90s00r06 173 mov dptr,#_strcmp_ret_1_1
174 174 ; Peephole 101 removed redundant mov
175 008A 74 FF 175 mov a,#0xff
176 008C F0 176 movx @dptr,a
178 008E F0 178 movx @dptr,a
179 179 ; Peephole 132 changed ljmp to sjmp
180 008F 80 1A 180 sjmp 00109$
184 184 ; Peephole 180 changed mov to clr
186 0093 98 186 subb a,r0
187 187 ; Peephole 159 avoided xrl during execution
188 0094 74 80 188 mov a,#(0x00 ^ 0x80)
189 0096 8D F0 189 mov b,r5
190 0098 63 F0 80 190 xrl b,#0x80
191 009B 95 F0 191 subb a,b
192 192 ; Peephole 108 removed ljmp by inverse jump logic
193 009D 50 0C 193 jnc 00109$
196 009F 90s00r06 196 mov dptr,#_strcmp_ret_1_1
199 00A4 F0 199 movx @dptr,a
200 00A5 12s00r00 200 lcall __decdptr
201 00A8 74 01 201 mov a,#0x01
202 00AA F0 202 movx @dptr,a
205 00AB 90s00r06 205 mov dptr,#_strcmp_ret_1_1
206 00AE E0 206 movx a,@dptr
209 00B1 E0 209 movx a,@dptr
211 00B3 8A 82 211 mov dpl,r2
212 00B5 8B 83 212 mov dph,r3
214 00B7 214 C$_strcmp.c$43$1$1 ==.
215 00B7 215 XG$strcmp$0$0 ==.
217 217 .area CSEG (CODE)