comparison 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
comparison
equal deleted inserted replaced
111:04ced10e8804 112:ab0bcb71f44d
27829 : !call_insn_operand (XEXP (fnaddr, 0), word_mode))) 27829 : !call_insn_operand (XEXP (fnaddr, 0), word_mode)))
27830 { 27830 {
27831 fnaddr = convert_to_mode (word_mode, XEXP (fnaddr, 0), 1); 27831 fnaddr = convert_to_mode (word_mode, XEXP (fnaddr, 0), 1);
27832 fnaddr = gen_rtx_MEM (QImode, copy_to_mode_reg (word_mode, fnaddr)); 27832 fnaddr = gen_rtx_MEM (QImode, copy_to_mode_reg (word_mode, fnaddr));
27833 } 27833 }
27834
27835 #ifndef noCbC
27836 if (pop
27837 && sibcall
27838 && !( GET_CODE (fnaddr) == MEM
27839 && GET_CODE (XEXP (fnaddr, 0)) == SYMBOL_REF) )
27840 {
27841 rtx eax = gen_rtx_REG (Pmode, AX_REG);
27842 eax = copy_to_suggested_reg (XEXP (fnaddr, 0), eax, Pmode);
27843 fnaddr = gen_rtx_MEM (QImode, eax);
27844 }
27845 #endif
27834 27846
27835 call = gen_rtx_CALL (VOIDmode, fnaddr, callarg1); 27847 call = gen_rtx_CALL (VOIDmode, fnaddr, callarg1);
27836 27848
27837 if (retval) 27849 if (retval)
27838 { 27850 {