diff options
author | Kazu Hirata <kazu@codesourcery.com> | 2006-05-23 04:52:19 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2006-05-23 04:52:19 +0000 |
commit | 546be53558e5305b16b6239c6014d776a3d7a742 (patch) | |
tree | c0ecb9b038efddade6134299cc950441cb1b1651 /gcc | |
parent | 1a1a5f4b25c5897773fae846a68287439555e248 (diff) | |
download | gcc-546be53558e5305b16b6239c6014d776a3d7a742.zip gcc-546be53558e5305b16b6239c6014d776a3d7a742.tar.gz gcc-546be53558e5305b16b6239c6014d776a3d7a742.tar.bz2 |
re PR target/27696 (g++.dg/other/i386-2.C ICEs on the mainline on x86_64)
gcc/
PR target/27696
* config/i386/i386.c (ix86_expand_builtin): Use
gen_sse3_monitor64 for TARGET_64BIT.
testsuite/gcc/
PR target/27696
* gcc.target/i386/pr27696.c: New.
From-SVN: r114012
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr27696.c | 11 |
4 files changed, 27 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 196804b..4da9ce4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-05-23 Kazu Hirata <kazu@codesourcery.com> + + PR target/27696 + * config/i386/i386.c (ix86_expand_builtin): Use + gen_sse3_monitor64 for TARGET_64BIT. + 2006-05-22 Kenneth Zadeck <zadeck@naturalbridge.com> PR rtl-optimization/26375 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index b004415..ec88a76 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -16151,12 +16151,15 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, op1 = expand_normal (arg1); op2 = expand_normal (arg2); if (!REG_P (op0)) - op0 = copy_to_mode_reg (SImode, op0); + op0 = copy_to_mode_reg (Pmode, op0); if (!REG_P (op1)) op1 = copy_to_mode_reg (SImode, op1); if (!REG_P (op2)) op2 = copy_to_mode_reg (SImode, op2); - emit_insn (gen_sse3_monitor (op0, op1, op2)); + if (!TARGET_64BIT) + emit_insn (gen_sse3_monitor (op0, op1, op2)); + else + emit_insn (gen_sse3_monitor64 (op0, op1, op2)); return 0; case IX86_BUILTIN_MWAIT: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2d7a552..bb4451d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-05-23 Kazu Hirata <kazu@codesourcery.com> + + PR target/27696 + * gcc.target/i386/pr27696.c: New. + 2006-05-22 Janis Johnson <janis187@us.ibm.com> * gcc.dg/vmx/pr27006.c: Remove dg-do directive; use default. diff --git a/gcc/testsuite/gcc.target/i386/pr27696.c b/gcc/testsuite/gcc.target/i386/pr27696.c new file mode 100644 index 0000000..2f281e3 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr27696.c @@ -0,0 +1,11 @@ +/* PR target/27696 + The testcase below uses to trigger an ICE. */ + +/* { dg-do compile } */ +/* { dg-options "-msse3" } */ + +void +foo (void const * P, unsigned int E, unsigned int H) +{ + __builtin_ia32_monitor (P, E, H); +} |