This is the mail archive of the
gdb-prs@sources.redhat.com
mailing list for the GDB project.
RE: sim/1116: UPDATED PATCH: SH Simulator - MAC.L implementation and MAC.W correction
- From: "Shrinivas Atre" <ShrinivasA at KPITCummins dot com>
- To: nobody at sources dot redhat dot com
- Cc: gdb-prs at sources dot redhat dot com,
- Date: 11 Aug 2003 12:58:01 -0000
- Subject: RE: sim/1116: UPDATED PATCH: SH Simulator - MAC.L implementation and MAC.W correction
- Reply-to: "Shrinivas Atre" <ShrinivasA at KPITCummins dot com>
The following reply was made to PR sim/1116; it has been noted by GNATS.
From: "Shrinivas Atre" <ShrinivasA@KPITCummins.com>
To: "Michael Snyder" <msnyder@redhat.com>,
<gdb-gnats@sources.redhat.com>,
<nobody@sources.redhat.com>,
<gdb-patches@sources.redhat.com>
Cc:
Subject: RE: sim/1116: UPDATED PATCH: SH Simulator - MAC.L implementation and MAC.W correction
Date: Mon, 11 Aug 2003 17:59:12 +0530
This is a multi-part message in MIME format.
------_=_NextPart_001_01C36004.2BDB5AFC
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hi,
Please find attached reworked patch .
I tried to reach http://www.gnu.org/prep/standards_toc.html for coding =
standards,=20
but it seems that the link is down.
Please let me know, if this is okay.
Regards,
Shrinivas
=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=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
Changelog:
2003-08-11 Shrinivas Atre <shrinivasa@KPITCummins.com>=09
* sim/sh/gencode.c ( tab[] ): Addition of MAC.L handler and correction =
for MAC.W handler
* sim/sh/interp.c ( macl ): New Function. Implementation of MAC.L =
handler.
-------------------------------------------------------------------------=
-----------------------=09
--- sim/sh/gencode.old.c 2003-08-11 17:45:24.000000000 +0530
+++ sim/sh/gencode.c 2003-08-11 17:45:02.000000000 +0530
@@ -580,12 +580,11 @@ op tab[] =3D
},
=20
{ "nm", "nm", "mac.l @<REG_M>+,@<REG_N>+", "0000nnnnmmmm1111",
- "trap (255, R0, PC, memory, maskl, maskw, endianw);",
- "/* FIXME: mac.l support */",
+ "macl(&R0,memory,n,m);",
},
=20
{ "nm", "nm", "mac.w @<REG_M>+,@<REG_N>+", "0100nnnnmmmm1111",
- "macw(R0,memory,n,m,endianw);",
+ "macw(&R0,memory,n,m,endianw);",
},
=20
{ "n", "", "mov #<imm>,<REG_N>", "1110nnnni8*1....",
-------------------------------------------------------------------------=
-----------------------
--- sim/sh/interp.old.c 2003-08-11 17:45:18.000000000 +0530
+++ sim/sh/interp.c 2003-08-11 17:44:54.000000000 +0530
@@ -169,6 +169,7 @@ static char **prog_argv;
=20
#if 1
static int maskw =3D 0;
+static int maskl =3D 0;
#endif
=20
static SIM_OPEN_KIND sim_kind;
@@ -651,6 +652,7 @@ rbat_fast (memory, x, maskb)
=20
#define RUWAT(x) (RWAT(x) & 0xffff)
#define RSWAT(x) ((short)(RWAT(x)))
+#define RSLAT(x) ((long)(RLAT(x)))
#define RSBAT(x) (SEXT(RBAT(x)))
=20
#define RDAT(x, n) (do_rdat (memory, (x), (n), (maskl)))
@@ -1348,6 +1350,56 @@ macw (regs, memory, n, m, endianw)
MACL =3D sum;
}
=20
+static void
+macl (regs, memory, n, m)
+ int *regs;
+ unsigned char *memory;
+ int m, n;
+{
+ long tempm, tempn;
+ long prod, macl, mach, sum;
+ long long ans,ansl,ansh,t;
+ unsigned long long high,low,combine;
+ union mac64
+ {
+ long m[2]; /* mach and macl*/
+ long long m64; /* 64 bit MAC */
+ }mac64;
+
+ tempm =3D RSLAT(regs[m]);
+ regs[m] +=3D 4;
+
+ tempn =3D RSLAT(regs[n]);
+ regs[n] +=3D 4;
+
+ mach =3D MACH;
+ macl =3D MACL;
+
+ mac64.m[0] =3D macl;
+ mac64.m[1] =3D mach;
+
+ ans =3D (long long)tempm * (long long)tempn; /* Multiply 32bit * =
32bit */
+
+ mac64.m64 +=3D ans; /* Accumulate 64bit + 64 bit */
+
+ macl =3D mac64.m[0];
+ mach =3D mac64.m[1];
+
+ if (S) /* Store only 48 bits of the result */
+ {
+ if (mach < 0) /* Result is negative */
+ {
+ mach =3D mach & 0x0000ffff; /* Mask higher 16 bits */
+ mach |=3D 0xffff8000; /* Sign extend higher 16 bits */
+ }
+ else
+ mach =3D mach & 0x00007fff; /* Postive Result */
+ }
+
+ MACL =3D macl;
+ MACH =3D mach;
+}
+
static struct loop_bounds
get_loop_bounds (rs, re, memory, mem_end, maskw, endianw)
int rs, re;
-------------------------------------------------------------------------=
-----------------------
> -----Original Message-----
> From: Michael Snyder [mailto:msnyder@redhat.com]
> Sent: Saturday, August 09, 2003 4:28 AM
> To: gdb-gnats@sources.redhat.com; nobody@sources.redhat.com; Shrinivas
> Atre; gdb-prs@sources.redhat.com
> Subject: Re: sim/1116: UPDATED PATCH: SH Simulator - MAC.L
> implementation and MAC.W correction
>=20
>=20
> http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=3Dview%20audit
> -trail&database=3Dgdb&pr=3D1116
>=20
> Patch approved, if first re-indented to conform to rest of=20
> source file.
> Michael Snyder
>=20
>=20
>=20
------_=_NextPart_001_01C36004.2BDB5AFC
Content-Type: application/octet-stream;
name="gencode.diff"
Content-Transfer-Encoding: base64
Content-Description: gencode.diff
Content-Disposition: attachment;
filename="gencode.diff"
LS0tIHNpbS9zaC9nZW5jb2RlLm9sZC5jCTIwMDMtMDgtMTEgMTc6NDU6MjQuMDAwMDAwMDAwICsw
NTMwDQorKysgc2ltL3NoL2dlbmNvZGUuYwkyMDAzLTA4LTExIDE3OjQ1OjAyLjAwMDAwMDAwMCAr
MDUzMA0KQEAgLTU4MCwxMiArNTgwLDExIEBAIG9wIHRhYltdID0NCiAgIH0sDQogDQogICB7ICJu
bSIsICJubSIsICJtYWMubCBAPFJFR19NPissQDxSRUdfTj4rIiwgIjAwMDBubm5ubW1tbTExMTEi
LA0KLSAgICAidHJhcCAoMjU1LCBSMCwgUEMsIG1lbW9yeSwgbWFza2wsIG1hc2t3LCBlbmRpYW53
KTsiLA0KLSAgICAiLyogRklYTUU6IG1hYy5sIHN1cHBvcnQgKi8iLA0KKyAgICAibWFjbCgmUjAs
bWVtb3J5LG4sbSk7IiwNCiAgIH0sDQogDQogICB7ICJubSIsICJubSIsICJtYWMudyBAPFJFR19N
PissQDxSRUdfTj4rIiwgIjAxMDBubm5ubW1tbTExMTEiLA0KLSAgICAibWFjdyhSMCxtZW1vcnks
bixtLGVuZGlhbncpOyIsDQorICAgICJtYWN3KCZSMCxtZW1vcnksbixtLGVuZGlhbncpOyIsDQog
ICB9LA0KIA0KICAgeyAibiIsICIiLCAibW92ICM8aW1tPiw8UkVHX04+IiwgIjExMTBubm5uaTgq
MS4uLi4iLA0K
------_=_NextPart_001_01C36004.2BDB5AFC
Content-Type: application/octet-stream;
name="interp.diff"
Content-Transfer-Encoding: base64
Content-Description: interp.diff
Content-Disposition: attachment;
filename="interp.diff"
LS0tIHNpbS9zaC9pbnRlcnAub2xkLmMJMjAwMy0wOC0xMSAxNzo0NToxOC4wMDAwMDAwMDAgKzA1
MzANCisrKyBzaW0vc2gvaW50ZXJwLmMJMjAwMy0wOC0xMSAxNzo0NDo1NC4wMDAwMDAwMDAgKzA1
MzANCkBAIC0xNjksNiArMTY5LDcgQEAgc3RhdGljIGNoYXIgKipwcm9nX2FyZ3Y7DQogDQogI2lm
IDENCiBzdGF0aWMgaW50IG1hc2t3ID0gMDsNCitzdGF0aWMgaW50IG1hc2tsID0gMDsNCiAjZW5k
aWYNCiANCiBzdGF0aWMgU0lNX09QRU5fS0lORCBzaW1fa2luZDsNCkBAIC02NTEsNiArNjUyLDcg
QEAgcmJhdF9mYXN0IChtZW1vcnksIHgsIG1hc2tiKQ0KIA0KICNkZWZpbmUgUlVXQVQoeCkgIChS
V0FUKHgpICYgMHhmZmZmKQ0KICNkZWZpbmUgUlNXQVQoeCkgICgoc2hvcnQpKFJXQVQoeCkpKQ0K
KyNkZWZpbmUgUlNMQVQoeCkgICgobG9uZykoUkxBVCh4KSkpDQogI2RlZmluZSBSU0JBVCh4KSAg
KFNFWFQoUkJBVCh4KSkpDQogDQogI2RlZmluZSBSREFUKHgsIG4pIChkb19yZGF0IChtZW1vcnks
ICh4KSwgKG4pLCAobWFza2wpKSkNCkBAIC0xMzQ4LDYgKzEzNTAsNTYgQEAgbWFjdyAocmVncywg
bWVtb3J5LCBuLCBtLCBlbmRpYW53KQ0KICAgTUFDTCA9IHN1bTsNCiB9DQogDQorc3RhdGljIHZv
aWQNCittYWNsIChyZWdzLCBtZW1vcnksIG4sIG0pDQorICAgICBpbnQgKnJlZ3M7DQorICAgICB1
bnNpZ25lZCBjaGFyICptZW1vcnk7DQorICAgICBpbnQgbSwgbjsNCit7DQorICBsb25nIHRlbXBt
LCB0ZW1wbjsNCisgIGxvbmcgcHJvZCwgbWFjbCwgbWFjaCwgc3VtOw0KKyAgbG9uZyBsb25nIGFu
cyxhbnNsLGFuc2gsdDsNCisgIHVuc2lnbmVkIGxvbmcgbG9uZyBoaWdoLGxvdyxjb21iaW5lOw0K
KyAgdW5pb24gbWFjNjQNCisgIHsNCisgICAgbG9uZyBtWzJdOyAvKiBtYWNoIGFuZCBtYWNsKi8N
CisgICAgbG9uZyBsb25nIG02NDsgLyogNjQgYml0IE1BQyAqLw0KKyAgfW1hYzY0Ow0KKw0KKyAg
dGVtcG0gPSBSU0xBVChyZWdzW21dKTsNCisgIHJlZ3NbbV0gKz0gNDsNCisNCisgIHRlbXBuID0g
UlNMQVQocmVnc1tuXSk7DQorICByZWdzW25dICs9IDQ7DQorDQorICBtYWNoID0gTUFDSDsNCisg
IG1hY2wgPSBNQUNMOw0KKw0KKyAgbWFjNjQubVswXSA9IG1hY2w7DQorICBtYWM2NC5tWzFdID0g
bWFjaDsNCisNCisgIGFucyA9IChsb25nIGxvbmcpdGVtcG0gKiAobG9uZyBsb25nKXRlbXBuOyAv
KiBNdWx0aXBseSAzMmJpdCAqIDMyYml0ICovDQorDQorICBtYWM2NC5tNjQgKz0gYW5zOyAvKiBB
Y2N1bXVsYXRlICAgNjRiaXQgKyA2NCBiaXQgKi8NCisNCisgIG1hY2wgPSBtYWM2NC5tWzBdOw0K
KyAgbWFjaCA9IG1hYzY0Lm1bMV07DQorDQorICBpZiAoUykgIC8qIFN0b3JlIG9ubHkgNDggYml0
cyBvZiB0aGUgcmVzdWx0ICovDQorICAgIHsNCisgICAgICBpZiAobWFjaCA8IDApIC8qIFJlc3Vs
dCBpcyBuZWdhdGl2ZSAqLw0KKyAgICAgICAgew0KKyAgICAgICAgICBtYWNoID0gbWFjaCAmIDB4
MDAwMGZmZmY7IC8qIE1hc2sgaGlnaGVyIDE2IGJpdHMgKi8NCisgICAgICAgICAgbWFjaCB8PSAw
eGZmZmY4MDAwOyAvKiBTaWduIGV4dGVuZCBoaWdoZXIgMTYgYml0cyAqLw0KKyAgICAgICAgfQ0K
KyAgICAgIGVsc2UNCisgICAgICAgIG1hY2ggPSBtYWNoICYgMHgwMDAwN2ZmZjsgLyogUG9zdGl2
ZSBSZXN1bHQgKi8NCisgICAgfQ0KKw0KKyAgTUFDTCA9IG1hY2w7DQorICBNQUNIID0gbWFjaDsN
Cit9DQorDQogc3RhdGljIHN0cnVjdCBsb29wX2JvdW5kcw0KIGdldF9sb29wX2JvdW5kcyAocnMs
IHJlLCBtZW1vcnksIG1lbV9lbmQsIG1hc2t3LCBlbmRpYW53KQ0KICAgICAgaW50IHJzLCByZTsN
Cg==
------_=_NextPart_001_01C36004.2BDB5AFC--