mirror of
https://github.com/coreutils/coreutils.git
synced 2024-11-24 10:23:31 +08:00
build: fix factor build failure on aarch64
* src/longlong.h (__aarch64__): Make add_ssaaaa and sub_ddmmss work. * NEWS: Mention the build fix. Reported at https://bugzilla.redhat.com/917735
This commit is contained in:
parent
0a16f9732d
commit
9fe7c5b6eb
4
NEWS
4
NEWS
@ -18,6 +18,10 @@ GNU coreutils NEWS -*- outline -*-
|
||||
uniq accepts a new option: --group to print all items, while separating
|
||||
unique groups with empty lines.
|
||||
|
||||
** Build-related
|
||||
|
||||
factor now builds on aarch64 based systems [bug introduced in coreutils-8.20]
|
||||
|
||||
|
||||
* Noteworthy changes in release 8.21 (2013-02-14) [stable]
|
||||
|
||||
|
@ -529,23 +529,16 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
|
||||
#endif /* __arm__ */
|
||||
|
||||
#if defined (__aarch64__) && W_TYPE_SIZE == 64
|
||||
/* FIXME: Extend the immediate range for the low word by using both
|
||||
ADDS and SUBS, since they set carry in the same way. */
|
||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||
__asm__ ("adds\t%1, %4, %5\n\tadc\t%0, %2, %3" \
|
||||
__asm__ ("adds\t%1, %x4, %5\n\tadc\t%0, %x2, %x3" \
|
||||
: "=r" (sh), "=&r" (sl) \
|
||||
: "r" (ah), "rZ" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC)
|
||||
: "rZ" (ah), "rZ" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC)
|
||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||
do { \
|
||||
if (__builtin_constant_p (bl)) \
|
||||
{ \
|
||||
__asm__ ("subs\t%1, %4, %5\n\tsbc\t%0, %2, %3" \
|
||||
: "=r" (sh), "=&r" (sl) \
|
||||
: "r" (ah), "r" (bh), "r" (al), "rI" (bl) __CLOBBER_CC); \
|
||||
} \
|
||||
else /* only bh might be a constant */ \
|
||||
__asm__ ("subs\t%1, %4, %5\n\tsbc\t%0, %2, %3" \
|
||||
: "=r" (sh), "=&r" (sl) \
|
||||
: "r" (ah), "rZ" (bh), "r" (al), "rI" (bl) __CLOBBER_CC);\
|
||||
} while (0)
|
||||
__asm__ ("subs\t%1, %x4, %5\n\tsbc\t%0, %x2, %x3" \
|
||||
: "=r,r" (sh), "=&r,&r" (sl) \
|
||||
: "rZ,rZ" (ah), "rZ,rZ" (bh), "r,Z" (al), "rI,r" (bl) __CLOBBER_CC)
|
||||
#define umul_ppmm(ph, pl, m0, m1) \
|
||||
do { \
|
||||
UDItype __m0 = (m0), __m1 = (m1); \
|
||||
|
Loading…
Reference in New Issue
Block a user