[arm64] Negative immediates and lack of default Neon support

Torbjörn Granlund tg at gmplib.org
Fri Oct 3 09:41:52 UTC 2014


Marc Glisse <marc.glisse at inria.fr> writes:

  Strange, I thought I had tested 3.4, but apparently not. I get the
  same failure as you. And if I use -no-integrated-as, it passes lshift,
  but the compiler goes into an infinite loop for divrem_2.c and fails
  on another .c file with:
  
  /tmp/mod_1_4-96baa4.s: Assembler messages:
  /tmp/mod_1_4-96baa4.s:263: Error: unknown pseudo-op: `.data_region'
  /tmp/mod_1_4-96baa4.s:273: Error: unknown pseudo-op: `.end_data_region'
  
  It also crashes in many files: div_qr_2n_pi1.c, dcpi1_div_qr.c,
  hgcd2.c, gcd.c, jacobi_2.c, dcpi1_divappr_q.c, div_qr_2u_pi1.c,
  hgcd2_jacobi.c...
  
  Most of those seem related to inline asm, --disable-assembly works
  around many of them, but not an issue in get_str.
  
  Working around all that may be possible, but it is going to be quite a
  bit of work, and I don't think it is worth the trouble for a platform
  that almost noone has access to yet.

Wow!  "Released" software isn't what it used to be, that's for sure.

Thanks for this analysis!

(I found a workaround for the negative-offset-problem.  This is another
case of strictness in the clang assembler; ldr doesn't really allow
negative offsets, ldur is needed for that.  With your analysis above in
mind, I might not bother changing our assembly code to use ldur.)

-- 
Torbjörn
Please encrypt, key id 0xC8601622


More information about the gmp-bugs mailing list