Re: AArch64 ILP32 strcmp bug
Keith Packard via Newlib <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
Joel Sherrill via Newlib <[email protected]> writes: > In the meantime, would you think a patch to disable the optimized > method when ilp32 is appropriate for newlib? There is still the risk of > other methods having bugs. The alternative I see is to completely > PREFER_SIZE_OVER_SPEED for aarch64 and disable all of the > aarch64 assembly which seems worse. There's also setjmp/longjmp, which are only available in assembly form. Here's a completely untested patch (I'm afraid I don't have an ilp32 aarch64 compiler available today) which may help with that: diff --git a/newlib/libc/machine/aarch64/setjmp.S b/newlib/libc/machine/aarch64/setjmp.S index 0856145bf..df94eebd1 100644 --- a/newlib/libc/machine/aarch64/setjmp.S +++ b/newlib/libc/machine/aarch64/setjmp.S @@ -45,6 +45,9 @@ .global setjmp .type setjmp, %function setjmp: +#ifndef __LP64__ + mov w0, w0 +#endif mov x16, sp #define REG_PAIR(REG1, REG2, OFFS) stp REG1, REG2, [x0, OFFS] #define REG_ONE(REG1, OFFS) str REG1, [x0, OFFS] @@ -60,6 +63,10 @@ setjmp: .global longjmp .type longjmp, %function longjmp: +#ifndef __LP64__ + mov w0, w0 +#endif + #define REG_PAIR(REG1, REG2, OFFS) ldp REG1, REG2, [x0, OFFS] #define REG_ONE(REG1, OFFS) ldr REG1, [x0, OFFS] GPR_LAYOUT -- -keith
signature.asc
(application/pgp-signature, 832 B)
-----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEw4O3eCVWE9/bQJ2R2yIaaQAAABEFAl+/9ssACgkQ2yIaaQAA ABHjEBAAplsLv2K0uWRTCNjQqM0q/lVXxAzoKFeIz0bBI3ut+xRhXWoSTaEsz5GD CiULhL3Iob0jE1RgvJgDThJ1JHz5t9slEtAkyi0LV2FqD9OscqgtvPaS+QedKTsZ a6VYPuJ4cvLJvtVkANBNv49Xw05IsDTJpv1pQOWRnMHrdilpsIwlce8lMQg/krG3 PlEDNKhwsrv580pl2l3ZuGceegXMLo9n8MaSSJvOJ88RMe9ZBNjjtbdfZPsIW0Pd zqxHFHVkhGe3z+E/uzUDQHJuMG+5jmXqQnkDvm4MGq5ElB6LoI/J9l2KbzQAcP+p QiEZG/etBWmXOitQwC7YjwtmWZkh5o+tiKcmSrrJi7+cw22obYea++4yIvcgfYsc O83qkecdCINm1KAsljH9NZqk7o1u10CXI60xwUsRP5i0UQ93XoJOGgW1Dzg8sGuL /c+DoksvDqPebbh6dG3a1XVrDseN7x4cH79elu0212+c15JOhixblTsNYLypawyG diwIGLI5HdgFJjFi+4unB2vHSnwOjeUtdLJvgpBu0hvKGc5leIlqd639s+znjyjZ +Lz05dFwxfFUw1uzOZTXn4HozXab90cv1uOJqPihk//yQR1ZsfidLBlCGkOdQ/rA thEpBa4MO7EINuPUfqWFLFWq3+Hhh4HwloWCXHoOjnzon6b7Y5I= =f8QB -----END PGP SIGNATURE-----