[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gmp-bugs
Subject:    [arm64] Negative immediates and lack of default Neon support
From:       tg () gmplib ! org (=?utf-8?Q?Torbj=C3=B6rn?= Granlund)
Date:       2014-10-03 9:41:52
Message-ID: 86tx3lcwwv.fsf () shell ! gmplib ! org
[Download RAW message or body]

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

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic