Patchwork [AArch64,2/6] Implement support for Crypto -- Instruction types.

login
register
mail settings
Submitter Tejas Belagod
Date Dec. 6, 2013, 5:35 p.m.
Message ID <52A20AF8.30605@arm.com>
Download mbox | patch
Permalink /patch/298137/
State New
Headers show

Comments

Tejas Belagod - Dec. 6, 2013, 5:35 p.m.
Hi,

The attached patch adds crypto types for instruction classificiation.

Tested on aarch64-none-elf. OK for trunk?

Thanks,
Tejas

2013-12-06  Tejas Belagod  <tejas.belagod@arm.com>

	* config/arm/types.md (neon_mul_d_long, crypto_aes, crypto_sha1_xor,
	crypto_sha1_fast, crypto_sha1_slow, crypto_sha256_fast,
	crypto_sha256_slow): New.
Marcus Shawcroft - Dec. 10, 2013, 10:04 a.m.
On 6 December 2013 17:35, Tejas Belagod <tbelagod@arm.com> wrote:

>         * config/arm/types.md (neon_mul_d_long, crypto_aes, crypto_sha1_xor,
>         crypto_sha1_fast, crypto_sha1_slow, crypto_sha256_fast,
>         crypto_sha256_slow): New.

Looks ok to me, but get an ack from Ramana.

Note that part of this patch duplicates the crypto* types from
Kyrill's patch set also under review.  Both sets look identical to me
so whoever commits second will need to update their patch.

/Marcus
Ramana Radhakrishnan - Dec. 18, 2013, 1:04 p.m.
On Fri, Dec 6, 2013 at 5:35 PM, Tejas Belagod <tbelagod@arm.com> wrote:
>
> Hi,
>
> The attached patch adds crypto types for instruction classificiation.
>
> Tested on aarch64-none-elf. OK for trunk?

Ok but please work with Kyryll to make sure only one version of this
gets in, obviously.

Ramana

>
> Thanks,
> Tejas
>
> 2013-12-06  Tejas Belagod  <tejas.belagod@arm.com>
>
>         * config/arm/types.md (neon_mul_d_long, crypto_aes, crypto_sha1_xor,
>         crypto_sha1_fast, crypto_sha1_slow, crypto_sha256_fast,
>         crypto_sha256_slow): New.
> diff --git a/gcc/config/arm/types.md b/gcc/config/arm/types.md
> index 1c4b9e3..81ca62d 100644
> --- a/gcc/config/arm/types.md
> +++ b/gcc/config/arm/types.md
> @@ -326,6 +326,7 @@
>  ; neon_mul_b_long
>  ; neon_mul_h_long
>  ; neon_mul_s_long
> +; neon_mul_d_long
>  ; neon_mul_h_scalar
>  ; neon_mul_h_scalar_q
>  ; neon_mul_s_scalar
> @@ -519,6 +520,15 @@
>  ; neon_fp_div_s_q
>  ; neon_fp_div_d
>  ; neon_fp_div_d_q
> +;
> +; The classification below is for Crypto instructions.
> +;
> +; crypto_aes
> +; crypto_sha1_xor
> +; crypto_sha1_fast
> +; crypto_sha1_slow
> +; crypto_sha256_fast
> +; crypto_sha256_slow
>
>  (define_attr "type"
>   "adc_imm,\
> @@ -821,6 +831,7 @@
>    neon_mul_b_long,\
>    neon_mul_h_long,\
>    neon_mul_s_long,\
> +  neon_mul_d_long,\
>    neon_mul_h_scalar,\
>    neon_mul_h_scalar_q,\
>    neon_mul_s_scalar,\
> @@ -1035,7 +1046,14 @@
>    neon_fp_div_s,\
>    neon_fp_div_s_q,\
>    neon_fp_div_d,\
> -  neon_fp_div_d_q"
> +  neon_fp_div_d_q,\
> +\
> +  crypto_aes,\
> +  crypto_sha1_xor,\
> +  crypto_sha1_fast,\
> +  crypto_sha1_slow,\
> +  crypto_sha256_fast,\
> +  crypto_sha256_slow"
>     (const_string "untyped"))
>
>  ; Is this an (integer side) multiply with a 32-bit (or smaller) result?

Patch

diff --git a/gcc/config/arm/types.md b/gcc/config/arm/types.md
index 1c4b9e3..81ca62d 100644
--- a/gcc/config/arm/types.md
+++ b/gcc/config/arm/types.md
@@ -326,6 +326,7 @@ 
 ; neon_mul_b_long
 ; neon_mul_h_long
 ; neon_mul_s_long
+; neon_mul_d_long
 ; neon_mul_h_scalar
 ; neon_mul_h_scalar_q
 ; neon_mul_s_scalar
@@ -519,6 +520,15 @@ 
 ; neon_fp_div_s_q
 ; neon_fp_div_d
 ; neon_fp_div_d_q
+;
+; The classification below is for Crypto instructions.
+;
+; crypto_aes
+; crypto_sha1_xor
+; crypto_sha1_fast
+; crypto_sha1_slow
+; crypto_sha256_fast
+; crypto_sha256_slow
 
 (define_attr "type"
  "adc_imm,\
@@ -821,6 +831,7 @@ 
   neon_mul_b_long,\
   neon_mul_h_long,\
   neon_mul_s_long,\
+  neon_mul_d_long,\
   neon_mul_h_scalar,\
   neon_mul_h_scalar_q,\
   neon_mul_s_scalar,\
@@ -1035,7 +1046,14 @@ 
   neon_fp_div_s,\
   neon_fp_div_s_q,\
   neon_fp_div_d,\
-  neon_fp_div_d_q"
+  neon_fp_div_d_q,\
+\
+  crypto_aes,\
+  crypto_sha1_xor,\
+  crypto_sha1_fast,\
+  crypto_sha1_slow,\
+  crypto_sha256_fast,\
+  crypto_sha256_slow"
    (const_string "untyped"))
 
 ; Is this an (integer side) multiply with a 32-bit (or smaller) result?