New issue
Advanced search Search tips

Issue 652843 link

Starred by 1 user

Issue metadata

Status: Verified
Owner: ----
Closed: Oct 2016
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug

Blocking:
issue 537368



Sign in to add a comment

adhd: can not use with clang.

Project Member Reported by yunlian@chromium.org, Oct 4 2016

Issue description


glibc macro FPU_GETCW, FPU_SETCP (see below) is rejected by clang because ARMAsmParser thinks that cp10, cp11 is not accessible under armv7/armv8. That's not correct for armv7a with neon/vfp feature.

According to ARMv7a Architecture Reference manual - A2.9
Any implementation that includes either or both of the Advanced SIMD extension and the VFP extension must enable access to both CP10 and CP11.

Code reference - 
> sysdeps/arm/fpu__control.h
#define _FPU_GETCW(cw) \
  __asm__ __volatile__ ("mrc p10, 7, %0, cr1, cr0, 0" : "=r" (cw))

#define _FPU_SETCW(cw) \
  __asm__ __volatile__ ("mcr p10, 7, %0, cr1, cr0, 0" : : "r" (cw))

> ARMAsmParser.cpp - 
ARMAsmParser::OperandMatchResultTy
  ... ...
  // ARMv7 and v8 don't allow cp10/cp11 due to VFP/NEON specific instructions
  if ((hasV7Ops() || hasV8Ops()) && (Num == 10 || Num == 11))
    return MatchOperand_NoMatch;
[reply] [-] Comment 1
 

Comment 2 by dchan@chromium.org, Oct 7 2016

Labels: VerifyIn-55

Comment 3 by dchan@google.com, Nov 19 2016

Labels: VerifyIn-56

Comment 4 by dchan@google.com, Jan 21 2017

Labels: VerifyIn-57

Comment 5 by dchan@google.com, Mar 4 2017

Labels: VerifyIn-58

Comment 6 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59

Comment 7 by dchan@google.com, May 30 2017

Labels: VerifyIn-60

Comment 8 by dchan@chromium.org, Aug 1 2017

Labels: VerifyIn-61
Status: Verified (was: Fixed)
Closing. Please reopen it if its not fixed. Thanks!

Sign in to add a comment