|
From: <sv...@va...> - 2005-07-03 01:51:31
|
Author: sewardj
Date: 2005-07-03 02:51:29 +0100 (Sun, 03 Jul 2005)
New Revision: 1251
Log:
Get rid of endianness assumption in client-request-spotter.
Modified:
trunk/priv/guest-ppc32/toIR.c
Modified: trunk/priv/guest-ppc32/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-ppc32/toIR.c 2005-07-03 01:03:01 UTC (rev 1250)
+++ trunk/priv/guest-ppc32/toIR.c 2005-07-03 01:51:29 UTC (rev 1251)
@@ -5488,22 +5488,22 @@
/* Spot the client-request magic sequence. */
// Essentially a v. unlikely sequence of noops that we can catch
{
- UInt* code =3D (UInt*)(guest_code + delta);
+ UChar* code =3D (UChar*)(&guest_code[delta]);
=20
/* Spot this: =20
- 0x7C03D808 tw 0,3,27 =3D> trap word if(0) =3D> not=
hing
+ 0x7C03D808 tw 0,3,27 =3D> trap word if (0) =3D> no=
p
0x5400E800 rlwinm 0,0,29,0,0 =3D> r0 =3D rotl(r0,29)
0x54001800 rlwinm 0,0,3,0,0 =3D> r0 =3D rotl(r0,3)
0x54006800 rlwinm 0,0,13,0,0 =3D> r0 =3D rotl(r0,13)
0x54009800 rlwinm 0,0,19,0,0 =3D> r0 =3D rotl(r0,19)
0x60000000 nop
*/
- if (code[0] =3D=3D 0x7C03D808 &&
- code[1] =3D=3D 0x5400E800 &&
- code[2] =3D=3D 0x54001800 &&
- code[3] =3D=3D 0x54006800 &&
- code[4] =3D=3D 0x54009800 &&
- code[5] =3D=3D 0x60000000) {
+ if (getUIntBigendianly(code+ 0) =3D=3D 0x7C03D808 &&
+ getUIntBigendianly(code+ 4) =3D=3D 0x5400E800 &&
+ getUIntBigendianly(code+ 8) =3D=3D 0x54001800 &&
+ getUIntBigendianly(code+12) =3D=3D 0x54006800 &&
+ getUIntBigendianly(code+16) =3D=3D 0x54009800 &&
+ getUIntBigendianly(code+20) =3D=3D 0x60000000) {
DIP("%%r3 =3D client_request ( %%r31 )\n");
dres.len =3D 24;
delta +=3D 24;
|