i386.h (ASM_OUTPUT_REG_PUSH, [...]): Handle TARGET_64BIT.

* config/i386/i386.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
	Handle TARGET_64BIT.

	* gcc.dg/20021014-1.c: New test.

From-SVN: r58120
This commit is contained in:
Jakub Jelinek 2002-10-14 12:07:58 +02:00 committed by Jakub Jelinek
parent adadd18328
commit 0d1c5774b2
4 changed files with 44 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2002-10-14 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
Handle TARGET_64BIT.
2002-10-14 Richard Sandiford <rsandifo@redhat.com>
* config/mips/vr.h (DRIVER_SELF_SPECS): Define.

View File

@ -3017,13 +3017,25 @@ extern int const svr4_dbx_register_map[FIRST_PSEUDO_REGISTER];
It need not be very fast code. */
#define ASM_OUTPUT_REG_PUSH(FILE, REGNO) \
asm_fprintf ((FILE), "\tpush{l}\t%%e%s\n", reg_names[(REGNO)])
do { \
if (TARGET_64BIT) \
asm_fprintf ((FILE), "\tpush{q}\t%%r%s\n", \
reg_names[(REGNO)] + (REX_INT_REGNO_P (REGNO) != 0)); \
else \
asm_fprintf ((FILE), "\tpush{l}\t%%e%s\n", reg_names[(REGNO)]); \
} while (0)
/* This is how to output an insn to pop a register from the stack.
It need not be very fast code. */
#define ASM_OUTPUT_REG_POP(FILE, REGNO) \
asm_fprintf ((FILE), "\tpop{l}\t%%e%s\n", reg_names[(REGNO)])
do { \
if (TARGET_64BIT) \
asm_fprintf ((FILE), "\tpop{q}\t%%r%s\n", \
reg_names[(REGNO)] + (REX_INT_REGNO_P (REGNO) != 0)); \
else \
asm_fprintf ((FILE), "\tpop{l}\t%%e%s\n", reg_names[(REGNO)]); \
} while (0)
/* This is how to output an element of a case-vector that is absolute. */

View File

@ -1,3 +1,7 @@
2002-10-14 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/20021014-1.c: New test.
2002-10-11 Mark Mitchell <mark@codesourcery.com>
PR c++/5661

View File

@ -0,0 +1,21 @@
/* { dg-do run } */
/* { dg-options "-O2 -p" } */
extern void abort (void);
extern void exit (int);
int foo (void)
{
static int bar (int x)
{
return x + 3;
}
return bar (1) + bar (2);
}
int main (void)
{
if (foo () != 9)
abort ();
exit (0);
}