Looks good to me.

Dehao

On Wed, Mar 12, 2014 at 3:35 PM, Hán Shěn (沈涵) <shen...@google.com> 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?
>
> 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

Reply via email to