Date: Mon, 15 Jun 2015 15:39:04 -0600 From: Warner Losh <imp@bsdimp.com> To: Adrian Chadd <adrian@freebsd.org> Cc: Stanislav Sedov <stas@freebsd.org>, "freebsd-mips@freebsd.org" <freebsd-mips@freebsd.org> Subject: Re: [rfc] fix umul_ppmm() in our libgcc Message-ID: <4E91032E-901F-4667-B271-5D0C5361CC08@bsdimp.com> In-Reply-To: <CAJ-VmokZJvFuLaCGOG34cCE7kCnMbR0E5zmAia045uxcg3tq5g@mail.gmail.com> References: <CAJ-Vmonsmu5dGtWKhJchzZfSsVUjtwEVSEij4u6kwk64E0ZOXw@mail.gmail.com> <7895DD8F-6165-4EF9-AAE7-098C601470D8@freebsd.org> <CAJ-VmokZJvFuLaCGOG34cCE7kCnMbR0E5zmAia045uxcg3tq5g@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_75CCEFDB-821A-438B-9686-2C0F0D3046E1 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 do { UDltype ll; __asm__ (=E2=80=9Cmuiltu %2 %3=E2=80=9D : =E2=80=9C=3Dx=E2= =80=9D ll : =E2=80=9Cd=E2=80=9D ((USltype)(u)), =E2=80=9Cd=E2=80=9D((USlty= pe)(v))); w1 =3D ll >> 32; w0 =3D ll;} while 0; might be a good replacement. The =E2=80=9Ch=E2=80=9D constraint was = abandoned and not replaced by anything. Thought there may be simpler = ways, since I haven=E2=80=99t looked to see how this is actually used. Warner > On Jun 15, 2015, at 3:32 PM, Adrian Chadd <adrian@freebsd.org> wrote: >=20 > The error is unsupported constraints. '=3Dh' (hi register) is > unsupported as of some GCC > 4.2.1. >=20 >=20 >=20 > -a >=20 >=20 > On 15 June 2015 at 10:15, Stanislav Sedov <stas@freebsd.org> wrote: >>=20 >>> On Jun 13, 2015, at 3:41 PM, Adrian Chadd <adrian@freebsd.org> = wrote: >>>=20 >>> Hi, >>>=20 >>> our libgcc in -base is very .. old. It chokes when compiling for >>> mips32. This patch seems to do the right thing. >>>=20 >>> Does anyone have any positive/negative feedback? >>>=20 >>> Thanks, >>>=20 >>>=20 >>> -adrian >>>=20 >>>=20 >>> Index: contrib/gcc/longlong.h >>> =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 >>> --- contrib/gcc/longlong.h (revision 284090) >>> +++ contrib/gcc/longlong.h (working copy) >>> @@ -584,11 +584,11 @@ >>>=20 >>> #if defined (__mips__) && W_TYPE_SIZE =3D=3D 32 >>> #define umul_ppmm(w1, w0, u, v) \ >>> - __asm__ ("multu %2,%3" = \ >>> - : "=3Dl" ((USItype) (w0)), = \ >>> - "=3Dh" ((USItype) (w1)) = \ >>> - : "d" ((USItype) (u)), = \ >>> - "d" ((USItype) (v))) >>> + do { = \ >>> + UDItype __ll =3D (UDItype)(u) * (v); = \ >>> + w1 =3D __ll >> 32; = \ >>> + w0 =3D __ll; = \ >>> + } while (0) >>> #define UMUL_TIME 10 >>> #define UDIV_TIME 100 >>> #endif /* __mips__ */ >>=20 >> This looks right to me in terms of functionality, but what is wrong >> with the original code (multu)? That one seems correct as well. >>=20 >> What error do you see when compiling it? >>=20 >> -- >> ST4096-RIPE >>=20 >>=20 >>=20 > _______________________________________________ > freebsd-mips@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-mips > To unsubscribe, send any mail to = "freebsd-mips-unsubscribe@freebsd.org" --Apple-Mail=_75CCEFDB-821A-438B-9686-2C0F0D3046E1 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJVf0X5AAoJEGwc0Sh9sBEAXoMQAIOEaxeB5DRoCqS0EQBUGazk GgszvSxhPRFezgOOdtko/DeSu4WBVhmTPaKNU607VABKH4taISzIWvt+ZirNox4D 7gvFy9UoVjy8BnL5gxEraFVZ2KG0A5U3ilrmZWrrMrjMzGWlQFjszC4sFYr3RgOA /Y0W2f1Qahc9jY+NPWKU9CGsYkqaCc6APOokKoOVHPj5NFw1X1wJhQAgpUf70W/X XqVOpjG/sEdr49CE3WklZmFzD6WOEt1hkQpJdCsO+CR8clDv6+MZyYLCqrOz5GQu sR6gvCxK5NYLhaJ9To2MzlPC4P1WaLl+d2RsVmXA5lsTJKo+cw4ND4nWioINxnV5 uZZACKNDWnXYQjqrCYnSPlbNvN9FhQQEVXlAYVYJ3CMbiIYg8b+CaV/JO/k/CyiF Qlse/8g0RVouflRdRzHauhu1etty9y18FhUts29rEuUfVrORQ7K/5QkeVCnQ5KZH MSoUVb/mBZBQ5NEdNnjyVMZJ2CrfRKHSGQyuiB19+3jdfGrX1enwCecsxCOv4o+X /unbuboto7G41ks32xTb38rBuUdL/4THZTHi0K39BWR7KvlbY7d5tmFk1WTV25Om KQHMPjN0pNsw3HaH4TJHi+SgnXlQab43twyB6Kyre3kL3JXpUzYllIf2z15qCr5P 6jxf06d3rY8cg+3Ybtxw =M2jk -----END PGP SIGNATURE----- --Apple-Mail=_75CCEFDB-821A-438B-9686-2C0F0D3046E1--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E91032E-901F-4667-B271-5D0C5361CC08>