https://sourceware.org/bugzilla/show_bug.cgi?id=26699
Bug ID: 26699 Summary: Failure to assemble aarch64 "isb sy" in LP64 Big Endian host environment Product: binutils Version: 2.36 (HEAD) Status: UNCONFIRMED Severity: normal Priority: P2 Component: gas Assignee: unassigned at sourceware dot org Reporter: ryo at nerv dot org Target Milestone: --- Created attachment 12884 --> https://sourceware.org/bugzilla/attachment.cgi?id=12884&action=edit use same type of the aarch64_name_value_pair In parse_barrier() of gas/config/tc-aarch64.c, The return value of hash_find_n() is casted to "const asm_barrier_opt *o" to access it, but struct aarch64_name_value_pair, which is the entity returned by hash_find_n(), and asm_barrier_opt, which is not the same in LP64 *BIG ENDIAN*, cannot be accessed correctly because the structure of struct aarch64_name_value_pair and asm_barrier_opt are different. Currently, the value of asm_barrier_opt is unsigned long, but it should be uint32 (or aarch64_insn) the same as the value of aarch64_name_value_pair. I've tested this in the netbsd/aarch64_be environment. The same thing should happen in an LP64EB environment. (e.g. sparc64) # uname -ap NetBSD rockpro64 9.99.73 NetBSD 9.99.73 (GENERIC64EB) #225: Thu Oct 1 16:24:38 JST 2020 ryo@subq:/usr/src/sys/arch/evbarm/compile/GENERIC64EB evbarm aarch64eb # echo 'isb sy' | as {standard input}: Assembler messages: {standard input}:1: Error: the specified option is not accepted in ISB at operand 1 -- `isb sy' -- You are receiving this mail because: You are on the CC list for the bug.