[parisc-linux] 720 - some progress

Albert Strasheim fullung@ilink.nis.za
Sat, 29 Sep 2001 13:45:28 +0200


--JYK4vJDZwFMowpUq
Content-Type: multipart/mixed; boundary="T4sUOijqQbZv57TR"
Content-Disposition: inline


--T4sUOijqQbZv57TR
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello,

Just want to make sure I got this right. I've attached:

00-traps.c.orig
01_1-traps.c.quickfix
01_2-traps.c.case18
02-traps.c.case11
03-traps.c.jochen

00-traps.c.orig is the traps.c from -pa27. quickfix is the one that
simply adds a case 18: fall-through (and has worked quite well me for
me).

case18 is Jurij's first patch. case11 is his 2nd patch, which I had to
add in my hand. Then jochen is jochen's additions to that (please check
that I understood you correctly).

I've not included a traps.c with Matthew's code:

	...

	/* Emulate the instruction if the read is from cr27 */
	if (fromcr =3D=3D 26 || fromcr =3D=3D 27) {
		regs->gr[togr] =3D mfctl(fromcr);
		return;
	}
	/* Something else is wrong */

	...

It didn't compile for me and I'm not quite sure how to fix it and still
keep the original meaning intact. :-)

Regards,

Albert

On Sat, 29 Sep 2001, Jochen Friedrich wrote:

> Hi Albert,
>=20
> On Sat, 29 Sep 2001, Albert Strasheim wrote:
>=20
> > > 		if (fromcr =3D=3D 26 || fromcr =3D=3D 27) {
> > > 			regs->gr[togr] =3D mfctl(fromcr);
> > > 			return;
> > > 		}
> >
> > Making this change causes the build to fail:
>=20
> > {standard input}:912: Error: Undefined absolute constant: 'fromcr'.
> > {standard input}:912: Error: Field out of range [0..31] (-1).
> > {standard input}:912: Error: Invalid operands
>=20
> > Jochen suggested that in the case 11 handler, Jurij's
> >
> > regs->gr[togr] =3D regs->cr27;
> >
> > be replaced with
> >
> > regs->iaoq[0] =3D regs->iaoq[1];
> > regs->iaoq[1] =3D regs->iaoq[0] + 4;
>=20
> Not replaced, but added:
>=20
>  		if (fromcr =3D=3D 26) {
>  			regs->gr[togr] =3D mfctl(26);
> 			regs->iaoq[0] =3D regs->iaoq[1];
> 			regs->iaoq[1] =3D regs->iaoq[0] + 4;
>  			return;
>  		}
>  		if (fromcr =3D=3D 27) {
>  			regs->gr[togr] =3D mfctl(27);
> 			regs->iaoq[0] =3D regs->iaoq[1];
> 			regs->iaoq[1] =3D regs->iaoq[0] + 4;
>  			return;
>  		}
>=20
> These commands:
>=20
> regs->iaoq[0] =3D regs->iaoq[1];
> regs->iaoq[1] =3D regs->iaoq[0] + 4;
>=20
> just advance the instruction counter of the PA-RISC CPU, so after
> returning from the trap, the CPU will move on instead of retrying the
> failed op-code (which will, of course, trap again causing an infinite
> loop)
>=20
> Cheers,
> Jochen

--T4sUOijqQbZv57TR
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="traps.tar.gz"
Content-Transfer-Encoding: base64

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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

--T4sUOijqQbZv57TR--

--JYK4vJDZwFMowpUq
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE7tbRYDg+hOeRZtkMRAqMZAJ9m00TEVG/Ui8qs5FF2vdR+PYniRgCgiotj
YWT9mBFkK3r0BrdE2KzgHiI=
=K5k3
-----END PGP SIGNATURE-----

--JYK4vJDZwFMowpUq--