mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-25 12:41:01 +08:00
re PR target/15184 (Direct access to byte inside word not working with -march=pentiumpro)
PR target/15184 * gcc.target/i386/pr15184-1.c: Compile for ia32 target only. (dg-options): Remove -m32. (dg-final): Scan for "movb %al" only. * gcc.target/i386/pr15184-2.c: Ditto. From-SVN: r220277
This commit is contained in:
parent
b6dd03dd9c
commit
089ad47399
@ -1,3 +1,11 @@
|
||||
2015-01-30 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/15184
|
||||
* gcc.target/i386/pr15184-1.c: Compile for ia32 target only.
|
||||
(dg-options): Remove -m32.
|
||||
(dg-final): Scan for "movb %al" only.
|
||||
* gcc.target/i386/pr15184-2.c: Ditto.
|
||||
|
||||
2015-01-30 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/64829
|
||||
|
@ -1,11 +1,10 @@
|
||||
/* PR 15184 first two tests, plus two addition ones. */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -m32 -march=pentiumpro" } */
|
||||
/* { dg-do compile { target ia32 } } */
|
||||
/* { dg-options "-O2 -march=pentiumpro" } */
|
||||
|
||||
#define regparm __attribute__((__regparm__(3)))
|
||||
#define regparm __attribute__((__regparm__(1)))
|
||||
|
||||
extern unsigned int x;
|
||||
extern unsigned short y;
|
||||
|
||||
void regparm f0(unsigned char c)
|
||||
{
|
||||
@ -29,5 +28,5 @@ void regparm f3(unsigned char c)
|
||||
|
||||
/* Each function should compile down to a byte move from
|
||||
the input register into x, possibly at an offset within x. */
|
||||
/* { dg-final { scan-assembler-times "\tmovb\t%al, x" 4 } } */
|
||||
/* { dg-final { scan-assembler-times "movb\[ \\t\]+%al" 4 } } */
|
||||
|
||||
|
@ -1,10 +1,9 @@
|
||||
/* PR 15184 second two tests
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -m32 -march=pentiumpro" } */
|
||||
/* { dg-do compile { target ia32 } } */
|
||||
/* { dg-options "-O2 -march=pentiumpro" } */
|
||||
|
||||
#define regparm __attribute__((__regparm__(3)))
|
||||
#define regparm __attribute__((__regparm__(1)))
|
||||
|
||||
extern unsigned int x;
|
||||
extern unsigned short y;
|
||||
|
||||
void regparm g0(unsigned char c)
|
||||
@ -18,6 +17,6 @@ void regparm g1(unsigned char c)
|
||||
}
|
||||
|
||||
/* Each function should compile down to a byte move from
|
||||
the input register into x, possibly at an offset within x. */
|
||||
/* { dg-final { scan-assembler-times "\tmovb\t%al, y" 2 } } */
|
||||
the input register into y, possibly at an offset within y. */
|
||||
/* { dg-final { scan-assembler-times "movb\[ \\t\]+%al" 2 } } */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user