MMIX LOGO

MMIX Bug Report get_reader

Table of Content

Content

MMIXware Version

mmix-20131017

Bug Reported

Initial: 17/11/2014

Author

Laurent Desnogues

Description

The use of the get_reader function is in four instances wrong, because the operator < binds stronger than the operator =.

Proposed Patch

In four places we should have
@x
case 0:@+ if (Dcache->lock || (j=get_reader(Dcache)<0)) wait(1);
@y
case 0:@+ if (Dcache->lock || (j=get_reader(Dcache))<0) wait(1);
@z
@x
case 3:@+ if (Dcache->lock || (j=get_reader(Dcache)<0)) wait(1);
@y
case 3:@+ if (Dcache->lock || (j=get_reader(Dcache))<0) wait(1);
@z
@x
case 4:@+ if (Dcache->lock || (j=get_reader(Dcache)<0)) wait(1);
@y
case 4:@+ if (Dcache->lock || (j=get_reader(Dcache))<0) wait(1);
@z
@x
    if (Dcache->lock || (j=get_reader(Dcache)<0)) wait(1); /* D-cache busy */
@y
    if (Dcache->lock || (j=get_reader(Dcache))<0) wait(1); /* D-cache busy */
@z

Discussion

Status

Fixed in the repository, Rev. 85, on 2014-11-18.

Please help to keep this site up to date! If you want to point out important material or projects that are not listed here, if you find errors or want to suggest improvements, please send email to email