Mail Archives: djgpp/1993/06/04/08:57:56
Hi
With the new version of DJGPP 1.10 ( Great!) the new version of
gzip released today gives errors when compiling the match.s
file. I think the problem lies with the new version of gas,
but the problem is simple, a few brackets '(' added and it compiles
fine.
Here is a diff -c3 patch.
-----------------------cut here--------------------------------
*** match.old Fri Jun 4 15:18:52 1993
--- match.s Fri Jun 4 15:16:58 1993
***************
*** 87,97 ****
mov _max_chain_length,%ebp /* chain_length =
max_chain_length */
mov _strstart,%edi
mov %edi,%edx
! sub $ MAX_DIST,%edx /* limit = strstart-MAX_DIST */
jae limit_ok
sub %edx,%edx /* limit = NIL */
limit_ok:
! add $ _window+2,%edi /* edi =
offset(window+strstart+2) */
mov _prev_length,%ebx /* best_len = prev_length */
movw -3(%ebx,%edi),%ax /* ax = scan[best_len-
1..best_len] */
movw -2(%edi),%cx /* cx = scan[0..1] */
--- 87,97 ----
mov _max_chain_length,%ebp /* chain_length =
max_chain_length */
mov _strstart,%edi
mov %edi,%edx
! sub $ ( MAX_DIST ),%edx /* limit = strstart-MAX_DIST */
jae limit_ok
sub %edx,%edx /* limit = NIL */
limit_ok:
! add $( _window+2 ),%edi /* edi =
offset(window+strstart+2) */
mov _prev_length,%ebx /* best_len = prev_length */
movw -3(%ebx,%edi),%ax /* ax = scan[best_len-
1..best_len] */
movw -2(%edi),%cx /* cx = scan[0..1] */
***************
*** 110,116 ****
* at this point, di == scan+2, si == cur_match,
* ax = scan[best_len-1..best_len] and cx = scan[0..1]
*/
! and $ WSIZE-1, %esi
movw _prev(%esi,%esi),%si /* cur_match =
prev[cur_match] */
/* top word of esi is still
0 */
cmp %edx,%esi /* cur_match <= limit ? */
--- 110,116 ----
* at this point, di == scan+2, si == cur_match,
* ax = scan[best_len-1..best_len] and cx = scan[0..1]
*/
! and $ (WSIZE-1), %esi
movw _prev(%esi,%esi),%si /* cur_match =
prev[cur_match] */
/* top word of esi is still
0 */
cmp %edx,%esi /* cur_match <= limit ? */
***************
*** 125,131 ****
lea _window+2(%esi),%esi /* si = match */
mov %edi,%eax /* ax = scan+2 */
! mov $ MAX_MATCH2,%ecx /* scan for at most MAX_MATCH
bytes */
rep; cmpsw /* loop until mismatch */
je maxmatch /* match of length
MAX_MATCH? */
mismatch:
--- 125,131 ----
lea _window+2(%esi),%esi /* si = match */
mov %edi,%eax /* ax = scan+2 */
! mov $ (MAX_MATCH2),%ecx /* scan for at most
MAX_MATCH bytes */
rep; cmpsw /* loop until mismatch */
je maxmatch /* match of length
MAX_MATCH? */
mismatch:
***************
*** 134,140 ****
xchg %edi,%eax /* edi = scan+2, eax = end of
scan */
sub %edi,%eax /* eax = len */
sub %eax,%esi /* esi = cur_match + 2 + offset(window) */
! sub $ _window+2,%esi /* esi = cur_match */
subb $1,%cl /* set carry if cl == 0 (cannot
use DEC) */
adc $0,%eax /* eax = carry ? len+1 : len */
cmp %ebx,%eax /* len > best_len ? */
--- 134,140 ----
xchg %edi,%eax /* edi = scan+2, eax = end of
scan */
sub %edi,%eax /* eax = len */
sub %eax,%esi /* esi = cur_match + 2 + offset(window) */
! sub $( _window+2),%esi /* esi = cur_match */
subb $1,%cl /* set carry if cl == 0 (cannot
use DEC) */
adc $0,%eax /* eax = carry ? len+1 : len */
cmp %ebx,%eax /* len > best_len ? */
---------------------------------END----------------------------------
Shaun Courtney | INTERNET: courtney AT physci DOT uct DOT ac DOT za
Oceanography Dept. | or ocean AT ucthpx DOT uct DOT ac DOT za
Univ. of Cape Town
- Raw text -