Avoid using anything from <sys/atomic.h> if __HAVE_M68K_BROKEN_RMC is
defined. On m68k, the atomics in question are implemented in terms of
CAS, and that instruction must be avoided on __HAVE_M68K_BROKEN_RMC
systems.
(Really, the use of atomics they're they're used isn't necessary *at
all* here, but I'm looking for the minimal change necessary for possible
pullup-11.)
[VPlan] Skip cost verification for loops with EVL gather/scatter.
The VPlan-based cost model use vp_gather/vp_scatter for gather/scatter
costs, which is different to the legacy cost model and cannot be matched
there. Don't verify the costs match for plans containing gather/scatters
with EVL.
Fixes https://github.com/llvm/llvm-project/issues/169948.
Introduce __HAVE_M68K_BROKEN_RMC, which can be defined by m68k platforms
that cannot perform indivisible READ-MODIFY-WRITE bus cycles. The
define is named for the /RMC output signal on the CPU that is asserted
when such a cycle is performed. These cycles are only used by the CAS,
CAS2, and TAS instructions. The cycles are, as far as I can tell,
otherwise indistinguishable from garden-variety read followed by write
bus cycles, except for the assertion of /RMC. Note that other single-
instruction "read-modify-write" instructions (e.g. OR, AND, ADD, etc.
with a memory destination operand) do not assert /RMC, and are thus not
considered truly atomic from the perspective of the 68k architecture.
When __HAVE_M68K_BROKEN_RMC is defined, then we must make unavailable
the CAS, CAS2, and TAS instructions, because using them will typically
cause a bus error to occur. In this case, we handle _atomic_cas_32()
(and its aliases) in the kernel environment the same way as the 68010
does: a restartable atomic sequence. 8- and 16-bit CAS operations are
not available in the kernel environment on such platforms.
We define __HAVE_M68K_BROKEN_RMC for the hp300 platform because 68020-based
[5 lines not shown]
Interpret p_cdsession field in partition info only when the type
is set to FS_ISO9660. Other filesystem types use the field for p_fsize,
and default values there confuse the cd9660 filesystem code.
Fixes PR 59783.