* recog.c (push_operand): Recognize new format of push instructions.
From-SVN: r40694
This commit is contained in:
parent
5db60c46d0
commit
70a324958b
@ -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.
|
||||
|
22
gcc/recog.c
22
gcc/recog.c
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user