tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [2/2 ABI and toolchain part] Support Raspberry Pi [0-3] in big-endian mode
On 2020/11/16 6:28, matthew green wrote:
nice work. i agree with your proposed changes in general.
Thank you!
Therefore,
(1) configure GCC not to emit unaligned access for earmv6{,hf}eb.
http://www.netbsd.org/~rin/rpi_eb_gcc_20201115.patch
this part doesn't seem right:
- && arm_arch6 && (arm_arch_notm || arm_arch7));
+ && arm_arch6 && ((arm_arch_notm && !BYTES_BIG_ENDIAN) || arm_arch7));
i would have expected "&& !BYTES_BIG_ENDIAN" to have been
added to the "arm_arch6", not the "arm_arch_notm" section.
This is not wrong;
arm_arch6 && ((arm_arch_notm && !BYTES_BIG_ENDIAN) || arm_arch7)
is equivalent to
(arm_arch6 && arm_arch_notm && !BYTE_BIG_ENDIAN) || arm_arch7
This is confusing, but I prioritized the original form.
since this is really a hardware issue, and this is a bug
all GCC arm, not netbsd target, it would be nice if you
attempted merging this upstream as well :)
Unaligned access is possible for ARMv6 in BE8 big-endian mode, which
seems to be used for OSes other than NetBSD. While it is not possible
in BE32 big-endian mode for us.
Hmm, I started thinking that the fix should be restricted to NetBSD
target. But I don't know how to deal with this...
FreeBSD uses SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. But, at the moment
when SUBTARGET_OVERRIDE_INTERNAL_OPTIONS is called,
opts_set->x_unaligned_access is already modified by
arm_option_override_internal().
Any ideas? Define new macro, e.g.,
SUBTARGET_OVERRIDE_UNALIGNED_ACCESS_OPTIONS in netbsd-eabi.h?
Thanks,
rin
Home |
Main Index |
Thread Index |
Old Index