[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