From: Kirill Yukhin Date: Tue, 18 Mar 2014 06:29:15 +0000 (+0000) Subject: i386.h (ADDITIONAL_REGISTER_NAMES): Add ymm and zmm register names. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7c831c4d5abd981b9f1f95cf714fff7b445489d1;p=gcc.git i386.h (ADDITIONAL_REGISTER_NAMES): Add ymm and zmm register names. gcc/ * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add ymm and zmm register names. gcc/testsuite/ * gcc.target/i386/avx-additional-reg-names.c: New. * gcc.target/i386/avx512f-additional-reg-names.c: Ditto. From-SVN: r208631 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1f8e1302ed9..28ac7b6679a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-03-18 Kirill Yukhin + + * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add + ymm and zmm register names. + 2014-03-17 Jakub Jelinek PR target/60516 diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index c80878b47c0..c5c1d5886ca 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -2016,12 +2016,28 @@ do { \ /* Table of additional register names to use in user input. */ #define ADDITIONAL_REGISTER_NAMES \ -{ { "eax", 0 }, { "edx", 1 }, { "ecx", 2 }, { "ebx", 3 }, \ - { "esi", 4 }, { "edi", 5 }, { "ebp", 6 }, { "esp", 7 }, \ - { "rax", 0 }, { "rdx", 1 }, { "rcx", 2 }, { "rbx", 3 }, \ - { "rsi", 4 }, { "rdi", 5 }, { "rbp", 6 }, { "rsp", 7 }, \ - { "al", 0 }, { "dl", 1 }, { "cl", 2 }, { "bl", 3 }, \ - { "ah", 0 }, { "dh", 1 }, { "ch", 2 }, { "bh", 3 } } +{ { "eax", 0 }, { "edx", 1 }, { "ecx", 2 }, { "ebx", 3 }, \ + { "esi", 4 }, { "edi", 5 }, { "ebp", 6 }, { "esp", 7 }, \ + { "rax", 0 }, { "rdx", 1 }, { "rcx", 2 }, { "rbx", 3 }, \ + { "rsi", 4 }, { "rdi", 5 }, { "rbp", 6 }, { "rsp", 7 }, \ + { "al", 0 }, { "dl", 1 }, { "cl", 2 }, { "bl", 3 }, \ + { "ah", 0 }, { "dh", 1 }, { "ch", 2 }, { "bh", 3 }, \ + { "ymm0", 21}, { "ymm1", 22}, { "ymm2", 23}, { "ymm3", 24}, \ + { "ymm4", 25}, { "ymm5", 26}, { "ymm6", 27}, { "ymm7", 28}, \ + { "ymm8", 45}, { "ymm9", 46}, { "ymm10", 47}, { "ymm11", 48}, \ + { "ymm12", 49}, { "ymm13", 50}, { "ymm14", 51}, { "ymm15", 52}, \ + { "ymm16", 53}, { "ymm17", 54}, { "ymm18", 55}, { "ymm19", 56}, \ + { "ymm20", 57}, { "ymm21", 58}, { "ymm22", 59}, { "ymm23", 60}, \ + { "ymm24", 61}, { "ymm25", 62}, { "ymm26", 63}, { "ymm27", 64}, \ + { "ymm28", 65}, { "ymm29", 66}, { "ymm30", 67}, { "ymm31", 68}, \ + { "zmm0", 21}, { "zmm1", 22}, { "zmm2", 23}, { "zmm3", 24}, \ + { "zmm4", 25}, { "zmm5", 26}, { "zmm6", 27}, { "zmm7", 28}, \ + { "zmm8", 45}, { "zmm9", 46}, { "zmm10", 47}, { "zmm11", 48}, \ + { "zmm12", 49}, { "zmm13", 50}, { "zmm14", 51}, { "zmm15", 52}, \ + { "zmm16", 53}, { "zmm17", 54}, { "zmm18", 55}, { "zmm19", 56}, \ + { "zmm20", 57}, { "zmm21", 58}, { "zmm22", 59}, { "zmm23", 60}, \ + { "zmm24", 61}, { "zmm25", 62}, { "zmm26", 63}, { "zmm27", 64}, \ + { "zmm28", 65}, { "zmm29", 66}, { "zmm30", 67}, { "zmm31", 68} } /* Note we are omitting these since currently I don't know how to get gcc to use these, since they want the same but different diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 49bc00155cb..beb3bcb2b25 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-03-18 Kirill Yukhin + + * gcc.target/i386/avx-additional-reg-names.c: New. + * gcc.target/i386/avx512f-additional-reg-names.c: Ditto. + 2014-03-17 Adam Butcher PR c++/60390 diff --git a/gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c b/gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c new file mode 100644 index 00000000000..d984bff44a1 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-mavx" } */ + +void foo () +{ + register int ymm_var asm ("ymm4"); + + __asm__ __volatile__("vxorpd %%ymm0, %%ymm0, %%ymm7\n" : : : "ymm7" ); +} diff --git a/gcc/testsuite/gcc.target/i386/avx512f-additional-reg-names.c b/gcc/testsuite/gcc.target/i386/avx512f-additional-reg-names.c new file mode 100644 index 00000000000..1bd428aed16 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512f-additional-reg-names.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-mavx512f" } */ + +void foo () +{ + register int zmm_var asm ("zmm9"); + + __asm__ __volatile__("vxorpd %%zmm0, %%zmm0, %%zmm7\n" : : : "zmm7" ); +}