aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/embed/internal/embedtest/testdata/i
diff options
context:
space:
mode:
authorSpencer Abson <spencer.abson@arm.com>2025-07-29 12:23:32 +0000
committerSpencer Abson <spencer.abson@arm.com>2025-07-31 10:29:49 +0000
commitd52e9ef98bb30872482a46e7a2ec6a20c3ca4a4c (patch)
tree17a85e83853ce98f4ede6e102dd47e6778542633 /libgo/go/embed/internal/embedtest/testdata/i
parenta5aa73e547d7383bcefa79704f072800ec94340b (diff)
downloadgcc-master.zip
gcc-master.tar.gz
gcc-master.tar.bz2
aarch64: Prevent streaming-compatible code from assembler rejection [PR121028]HEADtrunkmaster
Streaming-compatible functions can be compiled without SME enabled, but need to use "SMSTART SM" and "SMSTOP SM" to temporarily switch into the streaming state of a callee. These switches are conditional on the current mode being opposite to the target mode, so no SME instructions are executed if SME is not available. However, in GAS, "SMSTART SM" and "SMSTOP SM" always require +sme. A call from a streaming-compatible function, compiled without SME enabled, to a non -streaming function will be rejected as: Error: selected processor does not support `smstop sm'.. To work around this, we make use of the .inst directive to insert the literal encodings of "SMSTART SM" and "SMSTOP SM". gcc/ChangeLog: PR target/121028 * config/aarch64/aarch64-sme.md (aarch64_smstart_sm): Use the .inst directive if !TARGET_SME. (aarch64_smstop_sm): Likewise. gcc/testsuite/ChangeLog: PR target/121028 * gcc.target/aarch64/sme/call_sm_switch_1.c: Tell check-function -bodies not to ignore .inst directives, and replace the test for "smstart sm" with one for it's encoding. * gcc.target/aarch64/sme/call_sm_switch_11.c: Likewise. * gcc.target/aarch64/sme/pr121028.c: New test.
Diffstat (limited to 'libgo/go/embed/internal/embedtest/testdata/i')
0 files changed, 0 insertions, 0 deletions