This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

[PATCH] Fix atomic load for unsupported data sizes


When investigating an issue on arm, I discovered a bug that needs fixing.

If there is no atomic_load pattern for data which is larger than the native word size, we try to issue a compare_and_swap loop. Problem is there is no check to see if it succeeded or failed. If the compare-swap loop isn't emitted, we need to leave the __atomic_load_N call rather than silently generate incorrect code.

Attached patch bootstraps on x86_64-unknown-linux-gnu and fixes the problem on an arm cross compiler.

No new regressions in the testsuite, and is a harmless change for working code.

OK to check in? GCC 4.7 is still mainline isn't it?

Andrew


Attachment: atomic-load.diff
Description: Text document


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