| Summary: | Please provide __sync_lock_test_and_set builtin for ARM using swap insn | ||
|---|---|---|---|
| Product: | gcc | Reporter: | sprocket <spam_from_gcc_bugzilla> |
| Component: | target | Assignee: | Not yet assigned to anyone <unassigned> |
| Status: | RESOLVED WONTFIX | ||
| Severity: | enhancement | CC: | gcc-bugs |
| Priority: | P3 | ||
| Version: | unknown | ||
| Target Milestone: | --- | ||
| Host: | Target: | arm | |
| Build: | Known to work: | ||
| Known to fail: | Last reconfirmed: | ||
|
Description
sprocket
2007-09-12 21:20:08 UTC
SWP is deprecated in the ARM architecture. It would be a really bad idea to get gcc to generate that by default as it will break compatibility. Hi Richard, This is obviously less of an issue than it was in 2007. I think there are enough pre-ARMv6 systems still deployed that they cannot be ignored, though. For example, I believe that the Android native development kit assumes that the hardware is >= ARMv5. Currently, portable code need to do something like: #if v6 or newer ...use gcc builtins, which generate ldx/stx... #else ...use asm statements that generate swp... #endif It would be a bit less clunky if gcc builtins could be used in both cases. Personally, I use asm sufficiently rarely that it takes me a while to work out the syntax each time (both the actual assembler syntax and the gcc asm statement syntax). The builtins are much easier to use. Regards, Phil. |