From: SourceForge.net <no...@so...> - 2003-03-17 09:59:48
|
Bugs item #704878, was opened at 2003-03-17 10:14 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=704878&group_id=599 Category: ds390 target Group: None Status: Open Resolution: None Priority: 5 Submitted By: Jan Rejlek (jare) Assigned to: Bernhard Held (bernhardheld) Summary: Missing (or bad) peephole fix Initial Comment: In the ds390/peeph.def there are two unlabelled peephole rules at position #213. The first of them should be changed (or added?) to something like this: replace { mov %1,#(( %2 >> 16 ) ^ 0x80) } by { ; Peephole 213.a inserted fix mov %1,#(%2 >> 16) xrl %1,#0x80 } if portIsDS390 The same problem is probably also with the second unlabelled rule. Without this fix the pointer comparison is impossible to compile. Regards, Jan Rejlek ---------------------------------------------------------------------- >Comment By: Jan Rejlek (jare) Date: 2003-03-17 11:12 Message: Logged In: YES user_id=672939 ok, here is the source: xdata char a[2000]; unsigned n; int main() { xdata char *ptr = a + n; if (ptr < a + sizeof a) { *ptr = 0; } } ... and here is the problem (line 203) 187 ; test.c:8: if (ptr < a + sizeof a) { 188 ; genAssign 189 ; genAssign: resultIsFar = FALSE 0054 AD 84 190 mov r5,dpl1 0056 AE 85 191 mov r6,dph1 0058 AF 95 192 mov r7,dpx1 193 ; genCmpLt 194 ; genCmp 005A C3 195 clr c 005B ED 196 mov a,r5 005C 94rD0 197 subb a,#(_a + 0x07d0) 005E EE 198 mov a,r6 005F 94s07 199 subb a,#((_a + 0x07d0) >> 8) 0061 EF 200 mov a,r7 0062 64 80 201 xrl a,#0x80 202 ; Peephole 159 avoided xrl during execution r 0064 75 F0 50 203 mov b,#(((_a + 0x07d0) >> 16) ^ 0x80) 0067 95 F0 204 subb a,b 205 ; genIfxJump 206 ; Peephole 108 removed ljmp by inverse jump logic 0069 50 07 207 jnc 00103$ 006B 208 00106$: Jan Rejlek ---------------------------------------------------------------------- Comment By: Bernhard Held (bernhardheld) Date: 2003-03-17 10:45 Message: Logged In: YES user_id=203539 Could you please post a piece of source, which shows the problem? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=704878&group_id=599 |