[arm64] Negative immediates
Marc Glisse
marc.glisse at inria.fr
Sun Sep 21 10:47:53 UTC 2014
On Sun, 21 Sep 2014, Marc Glisse wrote:
> So I guess we should not rely on it. Is this just meant to be:
> sub x1, x1, #8
> ?
This obvious change (in a dozen places in lshift/rshift) lets the build
complete, and the testsuite passes, so I'll commit it later if nobody
complains.
The compilation is quite noisy with -Wasm-operand-widths. In particular,
it complains about calling count_leading_zeros(a,b) where a has 32 bits.
The compiler is right in that the clz instruction wants 2 registers of the
same size, though I doubt it can cause any trouble.
I am also seeing it with umul_ppmm (digit, frac, frac, 10) because of the
last argument.
By the way, inline asm on aarch64 confuses me, it seems important to name
the registers properly (w0 vs x0) but I only see the "r" constraint and
clang does not seem to use the type of the argument to disambiguate
between w and x.
Cross-testing aarch64 on debian has become trivial :-)
Install some regular packages (no weird download),
export CC='clang -target aarch64-linux-gnu'
.../configure --host=aarch64-linux-gnu
--
Marc Glisse
More information about the gmp-bugs
mailing list