i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and define as unspec_volatile.
* config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and define as unspec_volatile. ("nops"): Define as unspec_volatile. Use fputs to write to asm_out_file directly. Output NOPs on separate lines using while loop. * config/i386/i386.c (ix86_code_end): Use fputs to write to asm_out_file directly. Output NOPs on separate lines using while loop. testsuite/ChangeLog: * gcc.target/i386/pad-1.c: Remove -S from dg-options. * gcc.target/i386/pad-3.c: Ditto. * gcc.target/i386/pad-7.c: Ditto. * gcc.target/i386/pad-7.c: Ditto. * gcc.target/i386/pr36502.c: Ditto. * gcc.target/i386/zee.c: Ditto. * gcc.target/i386/20060821-1.c: Ditto. * gcc.target/i386/pad-2.c: Ditto. Scan for NOPs on separate lines. * gcc.target/i386/pad-5a.c: Ditto. Do not use scan-assembler-not. * gcc.target/i386/pad-5b.c: Ditto. * gcc.target/i386/pad-6a.c: Ditto. * gcc.target/i386/pad-6b.c: Ditto. * gcc.target/i386/pad-8.c: Ditto. * gcc.target/i386/pad-9.c: Ditto. * gcc.target/i386/pad-10.c: Ditto. * gcc.target/i386/pad-4.c: Ditto. Require pic effective target. From-SVN: r164564
This commit is contained in:
parent
3d11339491
commit
17eba94716
|
@ -1,3 +1,12 @@
|
|||
2010-09-23 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
|
||||
define as unspec_volatile.
|
||||
("nops"): Define as unspec_volatile. Use fputs to write to
|
||||
asm_out_file directly. Output NOPs on separate lines using while loop.
|
||||
* config/i386/i386.c (ix86_code_end): Use fputs to write to
|
||||
asm_out_file directly. Output NOPs on separate lines using while loop.
|
||||
|
||||
2010-09-23 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/45565
|
||||
|
@ -45,8 +54,7 @@
|
|||
|
||||
2010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||
|
||||
* doc/contrib.texi (Contributors): Allow URL to wrap in PDF
|
||||
output.
|
||||
* doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
|
||||
* doc/cppopts.texi: Fix markup of index entry.
|
||||
* doc/extend.texi (Constructing Calls): Fix markup of
|
||||
__builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
|
||||
|
@ -63,8 +71,7 @@
|
|||
long lines, avoid overlong pages from long @itemx lists.
|
||||
* doc/objc.texi (Garbage Collection): Allow URLs to wrap.
|
||||
* doc/standards.texi (Standards): Likewise.
|
||||
* doc/trouble.texi (Incompatibilities): Fix markup of index
|
||||
entry.
|
||||
* doc/trouble.texi (Incompatibilities): Fix markup of index entry.
|
||||
|
||||
2010-09-22 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
|
@ -74,8 +81,7 @@
|
|||
resize option array here.
|
||||
* opts.h (prune_options): Remove prototype.
|
||||
* gcc.c (process_command): Take decoded options; don't call
|
||||
decode_cmdline_options_to_array here. Use decoded options for
|
||||
argv[0].
|
||||
decode_cmdline_options_to_array here. Use decoded options for argv[0].
|
||||
(main): Call decode_cmdline_options_to_array here instead of
|
||||
prune_options. Update call to process_command.
|
||||
* config/darwin-driver.c: Include opts.h.
|
||||
|
@ -148,7 +154,7 @@
|
|||
* postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
|
||||
to update conditions. Fix reg_mode[] check.
|
||||
|
||||
2010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
|
||||
2010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
|
||||
|
||||
* config/picochip/picochip.md (movhicc): Use expand to check whether
|
||||
movhicc is available and split it after reload.
|
||||
|
@ -467,7 +473,7 @@
|
|||
* tree-inline.c (copy_phis_for_bb): Delay commit of edge
|
||||
insertions until after all PHI nodes of the block are processed.
|
||||
|
||||
2010-09-18 Tijl Coosemans <tijl@coosemans.org>
|
||||
2010-09-18 Tijl Coosemans <tijl@coosemans.org>
|
||||
|
||||
* config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
|
||||
|
||||
|
@ -1084,7 +1090,7 @@
|
|||
2010-09-15 Tejas Belagod <tejas.belagod@arm.com>
|
||||
|
||||
* config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
|
||||
pattern for vmovn. Expansion in case of non
|
||||
pattern for vmovn. Expansion in case of non
|
||||
-mvectorize-with-neon-quad.
|
||||
(neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
|
||||
non- -mvectorize-with-neon-quad case.
|
||||
|
|
|
@ -8024,13 +8024,18 @@ ix86_code_end (void)
|
|||
|
||||
xops[0] = gen_rtx_REG (Pmode, regno);
|
||||
xops[1] = gen_rtx_MEM (Pmode, stack_pointer_rtx);
|
||||
/* Pad stack IP move with 4 instructions. 2 NOPs count as 1
|
||||
instruction. */
|
||||
/* Pad stack IP move with 4 instructions (two NOPs count
|
||||
as one instruction.) */
|
||||
if (TARGET_PAD_SHORT_FUNCTION)
|
||||
output_asm_insn ("nop; nop; nop; nop; nop; nop; nop; nop",
|
||||
xops);
|
||||
{
|
||||
int i = 8;
|
||||
|
||||
while (i--)
|
||||
fputs ("\tnop\n", asm_out_file);
|
||||
}
|
||||
|
||||
output_asm_insn ("mov%z0\t{%1, %0|%0, %1}", xops);
|
||||
output_asm_insn ("ret", xops);
|
||||
fputs ("\tret\n", asm_out_file);
|
||||
final_end_function ();
|
||||
init_insn_lengths ();
|
||||
free_after_compilation (cfun);
|
||||
|
|
|
@ -104,7 +104,6 @@
|
|||
UNSPEC_LD_MPIC ; load_macho_picbase
|
||||
UNSPEC_TRUNC_NOOP
|
||||
UNSPEC_DIV_ALREADY_SPLIT
|
||||
UNSPEC_NOPS
|
||||
|
||||
;; For SSE/MMX support:
|
||||
UNSPEC_FIX_NOTRUNC
|
||||
|
@ -248,6 +247,7 @@
|
|||
UNSPECV_LOCK
|
||||
UNSPECV_PROLOGUE_USE
|
||||
UNSPECV_CLD
|
||||
UNSPECV_NOPS
|
||||
UNSPECV_VZEROALL
|
||||
UNSPECV_VZEROUPPER
|
||||
UNSPECV_RDTSC
|
||||
|
@ -11468,32 +11468,18 @@
|
|||
|
||||
;; Generate nops. Operand 0 is the number of nops, up to 8.
|
||||
(define_insn "nops"
|
||||
[(unspec [(match_operand 0 "const_int_operand" "")]
|
||||
UNSPEC_NOPS)]
|
||||
[(unspec_volatile [(match_operand 0 "const_int_operand" "")]
|
||||
UNSPECV_NOPS)]
|
||||
"reload_completed"
|
||||
{
|
||||
switch (INTVAL (operands[0]))
|
||||
{
|
||||
case 1:
|
||||
return "nop";
|
||||
case 2:
|
||||
return "nop; nop";
|
||||
case 3:
|
||||
return "nop; nop; nop";
|
||||
case 4:
|
||||
return "nop; nop; nop; nop";
|
||||
case 5:
|
||||
return "nop; nop; nop; nop; nop";
|
||||
case 6:
|
||||
return "nop; nop; nop; nop; nop; nop";
|
||||
case 7:
|
||||
return "nop; nop; nop; nop; nop; nop; nop";
|
||||
case 8:
|
||||
return "nop; nop; nop; nop; nop; nop; nop; nop";
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
break;
|
||||
}
|
||||
int num = INTVAL (operands[0]);
|
||||
|
||||
gcc_assert (num >= 1 && num <= 8);
|
||||
|
||||
while (num--)
|
||||
fputs ("\tnop\n", asm_out_file);
|
||||
|
||||
return "";
|
||||
}
|
||||
[(set (attr "length") (symbol_ref "INTVAL (operands[0])"))
|
||||
(set_attr "length_immediate" "0")
|
||||
|
|
|
@ -1,3 +1,22 @@
|
|||
2010-09-23 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* gcc.target/i386/pad-1.c: Remove -S from dg-options.
|
||||
* gcc.target/i386/pad-3.c: Ditto.
|
||||
* gcc.target/i386/pad-7.c: Ditto.
|
||||
* gcc.target/i386/pad-7.c: Ditto.
|
||||
* gcc.target/i386/pr36502.c: Ditto.
|
||||
* gcc.target/i386/zee.c: Ditto.
|
||||
* gcc.target/i386/20060821-1.c: Ditto.
|
||||
* gcc.target/i386/pad-2.c: Ditto. Scan for NOPs on separate lines.
|
||||
* gcc.target/i386/pad-5a.c: Ditto. Do not use scan-assembler-not.
|
||||
* gcc.target/i386/pad-5b.c: Ditto.
|
||||
* gcc.target/i386/pad-6a.c: Ditto.
|
||||
* gcc.target/i386/pad-6b.c: Ditto.
|
||||
* gcc.target/i386/pad-8.c: Ditto.
|
||||
* gcc.target/i386/pad-9.c: Ditto.
|
||||
* gcc.target/i386/pad-10.c: Ditto.
|
||||
* gcc.target/i386/pad-4.c: Ditto. Require pic effective target.
|
||||
|
||||
2010-09-23 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/45565
|
||||
|
@ -121,10 +140,10 @@
|
|||
2005-10-11 Fariborz Jahanian <fjahanian@apple.com>
|
||||
|
||||
Radar 4291785
|
||||
objc.dg/naming-4.m: New
|
||||
objc.dg/naming-5.m: New
|
||||
obj-c++.dg/naming-1.mm: New
|
||||
obj-c++.dg/naming-2.mm: New
|
||||
* objc.dg/naming-4.m: New
|
||||
* objc.dg/naming-5.m: New
|
||||
* obj-c++.dg/naming-1.mm: New
|
||||
* obj-c++.dg/naming-2.mm: New
|
||||
|
||||
2010-09-21 Jonathan Wakely <redi@gcc.gnu.org>
|
||||
Jack Howarth <howarth@bromo.med.uc.edu>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -msse3 -S" } */
|
||||
/* { dg-options "-O2 -msse3" } */
|
||||
/* { dg-final { scan-assembler-not "%mm" } } */
|
||||
/* PR 28825 */
|
||||
#include <pmmintrin.h>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -mtune=generic -S" } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -mtune=generic" } */
|
||||
/* { dg-final { scan-assembler "rep" } } */
|
||||
/* { dg-final { scan-assembler-not "nop" } } */
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -S" } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom" } */
|
||||
/* { dg-final { scan-assembler-not "nop" } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -S" } */
|
||||
/* { dg-final { scan-assembler-times "nop; nop; nop; nop; nop; nop; nop; nop" 1 } } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom" } */
|
||||
/* { dg-final { scan-assembler-times "nop" 8 } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
void
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -fno-pic -S" } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -fno-pic" } */
|
||||
/* { dg-final { scan-assembler-not "nop" } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target ilp32 } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -S -fPIC" } */
|
||||
/* { dg-final { scan-assembler-times "nop; nop; nop; nop; nop; nop; nop; nop" 1 } } */
|
||||
/* { dg-require-effective-target fpic } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -fPIC" } */
|
||||
/* { dg-final { scan-assembler-times "nop" 8 } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
extern int bar;
|
||||
|
@ -9,5 +10,6 @@ extern int bar;
|
|||
int
|
||||
foo ()
|
||||
{
|
||||
asm volatile ("");
|
||||
return bar;
|
||||
}
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target ilp32 } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -S" } */
|
||||
/* { dg-final { scan-assembler-times "nop; nop" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "nop; nop; nop" } } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom" } */
|
||||
/* { dg-final { scan-assembler-times "nop" 2 } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
int
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -S" } */
|
||||
/* { dg-final { scan-assembler-times "nop; nop; nop; nop" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "nop; nop; nop; nop; nop" } } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom" } */
|
||||
/* { dg-final { scan-assembler-times "nop" 4 } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
int
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target ilp32 } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -S" } */
|
||||
/* { dg-final { scan-assembler-times "nop; nop; nop; nop" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "nop; nop; nop; nop; nop" } } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom" } */
|
||||
/* { dg-final { scan-assembler-times "nop" 4 } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
int
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -S" } */
|
||||
/* { dg-final { scan-assembler-times "nop; nop; nop; nop; nop; nop" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "nop; nop; nop; nop; nop; nop; nop" } } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom" } */
|
||||
/* { dg-final { scan-assembler-times "nop" 6 } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target ilp32 } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -S" } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom" } */
|
||||
/* { dg-final { scan-assembler-not "nop" } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -S" } */
|
||||
/* { dg-final { scan-assembler-times "nop; nop; nop; nop; nop; nop" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "nop; nop; nop; nop; nop; nop; nop" } } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom" } */
|
||||
/* { dg-final { scan-assembler-times "nop" 6 } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
int
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom -S" } */
|
||||
/* { dg-final { scan-assembler-times "nop; nop; nop; nop" 1 } } */
|
||||
/* { dg-final { scan-assembler-not "nop; nop; nop; nop; nop" } } */
|
||||
/* { dg-options "-O2 -fomit-frame-pointer -march=atom" } */
|
||||
/* { dg-final { scan-assembler-times "nop" 4 } } */
|
||||
/* { dg-final { scan-assembler-not "rep" } } */
|
||||
|
||||
extern void bar (void);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* PR target/36502 */
|
||||
/* { dg-do compile { target { *-*-darwin* && ilp32 } } } */
|
||||
/* { dg-options "-O -fomit-frame-pointer -fno-pic -S" } */
|
||||
/* { dg-options "-O -fomit-frame-pointer -fno-pic" } */
|
||||
int a;
|
||||
void f() {a++;}
|
||||
/* { dg-final { scan-assembler-not "esp" } } */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
/* { dg-options "-O2 -fzee -S" } */
|
||||
/* { dg-options "-O2 -fzee" } */
|
||||
/* { dg-final { scan-assembler-not "mov\[\\t \]+\(%\[\^,\]+\),\[\\t \]*\\1" } } */
|
||||
int mask[100];
|
||||
int foo(unsigned x)
|
||||
|
|
Loading…
Reference in New Issue