aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2ctf.cc
diff options
context:
space:
mode:
authorWilco Dijkstra <wilco.dijkstra@arm.com>2024-07-02 17:37:04 +0100
committerWilco Dijkstra <wilco.dijkstra@arm.com>2024-07-02 18:01:56 +0100
commitd04c5537f5ae4a3acd3f5135347d7e2d8c218811 (patch)
tree20f07221674cd862f3140780dd1afb9828c8fc6b /gcc/dwarf2ctf.cc
parentbd9c550acc42c5b04a61be3c8d981359b2093357 (diff)
downloadgcc-d04c5537f5ae4a3acd3f5135347d7e2d8c218811.zip
gcc-d04c5537f5ae4a3acd3f5135347d7e2d8c218811.tar.gz
gcc-d04c5537f5ae4a3acd3f5135347d7e2d8c218811.tar.bz2
Arm: Fix disassembly error in Thumb-1 relaxed load/store [PR115188]
A Thumb-1 memory operand allows single-register LDMIA/STMIA. This doesn't get printed as LDR/STR with writeback in unified syntax, resulting in strange assembler errors if writeback is selected. To work around this, use the 'Uw' constraint that blocks writeback. Also use a new 'mem_and_no_t1_wback_op' which is a general memory operand that disallows writeback in Thumb-1. A few other patterns were using 'm' for Thumb-1 in a similar way, update these to also use 'mem_and_no_t1_wback_op' and 'Uw'. gcc: PR target/115188 * config/arm/arm.md (unaligned_loadsi): Use 'Uw' constraint and 'mem_and_no_t1_wback_op'. (unaligned_loadhiu): Likewise. (unaligned_storesi): Likewise. (unaligned_storehi): Likewise. * config/arm/predicates.md (mem_and_no_t1_wback_op): Add new predicate. * config/arm/sync.md (arm_atomic_load<mode>): Use 'Uw' constraint. (arm_atomic_store<mode>): Likewise. gcc/testsuite: PR target/115188 * gcc.target/arm/pr115188.c: Add new test.
Diffstat (limited to 'gcc/dwarf2ctf.cc')
0 files changed, 0 insertions, 0 deletions