[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/26699] New: Failure to assemble aarch64 "isb sy" in LP64 Big En
From: |
ryo at nerv dot org |
Subject: |
[Bug gas/26699] New: Failure to assemble aarch64 "isb sy" in LP64 Big Endian host environment |
Date: |
Fri, 02 Oct 2020 02:58:18 +0000 |
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.
- [Bug gas/26699] New: Failure to assemble aarch64 "isb sy" in LP64 Big Endian host environment,
ryo at nerv dot org <=