This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch hjl/pr67215/master in repository gcc.
The following commit(s) were added to refs/heads/hjl/pr67215/master by this push: new 09e56e8 Add comments. 09e56e8 is described below
commit 09e56e8c124c0a0fbef6b5970f9f30cdbcf54759 Author: H.J. Lu hjl.tools@gmail.com Date: Sun Aug 16 13:13:36 2015 -0700
Add comments. --- gcc/config/i386/i386.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index bf8a21d..7219964 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -25690,6 +25690,10 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, fnaddr); } fnaddr = gen_const_mem (Pmode, fnaddr); + /* Pmode may not be the same as word_mode for x32, which + doesn't support indirect branch va 32-bit memory slot. + Since x32 GOT slot is 64 bit with zero upper 32 bits, + indirect branch via x32 GOT slot is OK. */ if (GET_MODE (fnaddr) != word_mode) fnaddr = gen_rtx_ZERO_EXTEND (word_mode, fnaddr); fnaddr = gen_rtx_MEM (QImode, fnaddr); @@ -25715,6 +25719,8 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, && GET_CODE (XEXP (fnaddr, 0)) == SYMBOL_REF && !local_symbolic_operand (XEXP (fnaddr, 0), VOIDmode)) fnaddr = gen_rtx_MEM (QImode, construct_plt_address (XEXP (fnaddr, 0))); + /* Since x32 GOT slot is 64 bit with zero upper 32 bits, indirect + branch via x32 GOT slot is OK. */ else if (!(TARGET_X32 && MEM_P (fnaddr) && GET_CODE (XEXP (fnaddr, 0)) == ZERO_EXTEND