Mercurial > hg > CbC > CbC_gcc
diff gcc/config/i386/i386.c @ 112:ab0bcb71f44d
merge gcc 7
author | mir3636 |
---|---|
date | Fri, 10 Nov 2017 19:46:38 +0900 |
parents | 04ced10e8804 1b10fe6932e1 |
children | d34655255c78 |
line wrap: on
line diff
--- a/gcc/config/i386/i386.c Fri Oct 27 22:46:09 2017 +0900 +++ b/gcc/config/i386/i386.c Fri Nov 10 19:46:38 2017 +0900 @@ -27832,6 +27832,18 @@ fnaddr = gen_rtx_MEM (QImode, copy_to_mode_reg (word_mode, fnaddr)); } +#ifndef noCbC + if (pop + && sibcall + && !( GET_CODE (fnaddr) == MEM + && GET_CODE (XEXP (fnaddr, 0)) == SYMBOL_REF) ) + { + rtx eax = gen_rtx_REG (Pmode, AX_REG); + eax = copy_to_suggested_reg (XEXP (fnaddr, 0), eax, Pmode); + fnaddr = gen_rtx_MEM (QImode, eax); + } +#endif + call = gen_rtx_CALL (VOIDmode, fnaddr, callarg1); if (retval)