This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: sim/1116: UPDATED PATCH: SH Simulator - MAC.L implementation and MAC.W correction


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--


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]