Thanks Richard, I'll remove UNSPEC_SIN/COS from my patch. Han
On Thu, Mar 13, 2014 at 3:07 AM, Richard Earnshaw <rearn...@arm.com> wrote: > On 12/03/14 22:35, Hán Shěn (沈涵) wrote: >> ARM build (on chrome) is broken because of duplicate entries in arm.md >> and unspecs.md. Fixed by removing duplication and merge those in >> arm.md into unspecs.md. >> >> (We had a similar fix for google/gcc-4_8 here - >> http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=198650) >> >> Tested by building arm cross compiler successfully. >> >> Ok for google/main? >> > > Sounds to me like a merge botch. UNSPEC_SIN and UNSPEC_COS were removed > from trunk some time back, when the old FPA code was removed. I very > much doubt that you need to be re-adding them. > > R. > >> Patch below - >> >> diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md >> index 8b269a4..9aec213 100644 >> --- a/gcc/config/arm/arm.md >> +++ b/gcc/config/arm/arm.md >> @@ -75,27 +75,6 @@ >> ] >> ) >> >> -;; UNSPEC Usage: >> -;; Note: sin and cos are no-longer used. >> -;; Unspec enumerators for Neon are defined in neon.md. >> - >> -(define_c_enum "unspec" [ >> - UNSPEC_SIN ; `sin' operation (MODE_FLOAT): >> - ; operand 0 is the result, >> - ; operand 1 the parameter. >> - UNPSEC_COS ; `cos' operation (MODE_FLOAT): >> - ; operand 0 is the result, >> - ; operand 1 the parameter. >> - UNSPEC_PROLOGUE_USE ; As USE insns are not meaningful after reload, >> - ; this unspec is used to prevent the deletion of >> - ; instructions setting registers for EH handling >> - ; and stack frame generation. Operand 0 is the >> - ; register to "use". >> - UNSPEC_WMADDS ; Used by the intrinsic form of the iWMMXt >> WMADDS instruction. >> - UNSPEC_WMADDU ; Used by the intrinsic form of the iWMMXt >> WMADDU instruction. >> - UNSPEC_GOT_PREL_SYM ; Specify an R_ARM_GOT_PREL relocation of a symbol. >> -]) >> - >> ;; UNSPEC_VOLATILE Usage: >> >> >> diff --git a/gcc/config/arm/unspecs.md b/gcc/config/arm/unspecs.md >> index 8caa953..89bc528 100644 >> --- a/gcc/config/arm/unspecs.md >> +++ b/gcc/config/arm/unspecs.md >> @@ -24,6 +24,12 @@ >> ;; Unspec enumerators for iwmmxt2 are defined in iwmmxt2.md >> >> (define_c_enum "unspec" [ >> + UNSPEC_SIN ; `sin' operation (MODE_FLOAT): >> + ; operand 0 is the result, >> + ; operand 1 the parameter. >> + UNPSEC_COS ; `cos' operation (MODE_FLOAT): >> + ; operand 0 is the result, >> + ; operand 1 the parameter. >> UNSPEC_PUSH_MULT ; `push multiple' operation: >> ; operand 0 is the first register, >> ; subsequent registers are in parallel (use ...) >> @@ -58,6 +64,7 @@ >> ; instruction stream. >> UNSPEC_PIC_OFFSET ; A symbolic 12-bit OFFSET that has been treated >> ; correctly for PIC usage. >> + UNSPEC_GOT_PREL_SYM ; Specify an R_ARM_GOT_PREL relocation of a symbol. >> UNSPEC_GOTSYM_OFF ; The offset of the start of the GOT from a >> ; a given symbolic address. >> UNSPEC_THUMB1_CASESI ; A Thumb1 compressed dispatch-table call. >> @@ -70,6 +77,11 @@ >> ; that. >> UNSPEC_UNALIGNED_STORE ; Same for str/strh. >> UNSPEC_PIC_UNIFIED ; Create a common pic addressing form. >> + UNSPEC_PROLOGUE_USE ; As USE insns are not meaningful after reload, >> + ; this unspec is used to prevent the deletion of >> + ; instructions setting registers for EH handling >> + ; and stack frame generation. Operand 0 is the >> + ; register to "use". >> UNSPEC_LL ; Represent an unpaired load-register-exclusive. >> UNSPEC_VRINTZ ; Represent a float to integral float rounding >> ; towards zero. >> @@ -87,6 +99,8 @@ >> >> (define_c_enum "unspec" [ >> UNSPEC_WADDC ; Used by the intrinsic form of the iWMMXt WADDC instruction. >> + UNSPEC_WMADDS ; Used by the intrinsic form of the iWMMXt >> WMADDS instruction. >> + UNSPEC_WMADDU ; Used by the intrinsic form of the iWMMXt >> WMADDU instruction. >> UNSPEC_WABS ; Used by the intrinsic form of the iWMMXt WABS instruction. >> UNSPEC_WQMULWMR ; Used by the intrinsic form of the iWMMXt WQMULWMR >> instruction. >> UNSPEC_WQMULMR ; Used by the intrinsic form of the iWMMXt WQMULMR >> instruction. >> >> >> >> >> Han >> > > -- Han Shen | Software Engineer | shen...@google.com | +1-650-440-3330