* recog.c (push_operand): Recognize new format of push instructions.

From-SVN: r40694
This commit is contained in:
Jan Hubicka 2001-03-21 18:54:00 +01:00 committed by Jan Hubicka
parent 5db60c46d0
commit 70a324958b
2 changed files with 24 additions and 2 deletions

View File

@ -1,3 +1,7 @@
Wed Mar 21 18:51:19 CET 2001 Jan Hubicka <jh@suse.cz>
* recog.c (push_operand): Recognize new format of push instructions.
Wed Mar 21 10:53:57 CET 2001 Jan Hubicka <jh@suse.cz>
* i386.md (pushqi1): New.

View File

@ -1358,8 +1358,26 @@ push_operand (op, mode)
op = XEXP (op, 0);
if (GET_CODE (op) != STACK_PUSH_CODE)
return 0;
if (PUSH_ROUNDING (GET_MODE_SIZE (mode)) == GET_MODE_SIZE (mode))
{
if (GET_CODE (op) != STACK_PUSH_CODE)
return 0;
}
else
{
int rounded_size = PUSH_ROUNDING (GET_MODE_SIZE (mode));
if (GET_CODE (op) != PRE_MODIFY
|| GET_CODE (XEXP (op, 1)) != PLUS
|| XEXP (XEXP (op, 1), 0) != XEXP (op, 0)
|| GET_CODE (XEXP (XEXP (op, 1), 1)) != CONST_INT
#ifdef STACK_GROWS_DOWNWARD
|| INTVAL (XEXP (XEXP (op, 1), 1)) != -rounded_size
#else
|| INTVAL (XEXP (XEXP (op, 1), 1)) != rounded_size
#endif
)
return 0;
}
return XEXP (op, 0) == stack_pointer_rtx;
}