Chromium Code Reviews| Index: gcc/gcc/config/i386/i386.c |
| diff --git a/gcc/gcc/config/i386/i386.c b/gcc/gcc/config/i386/i386.c |
| index 42c2dbfe995581075a9f038f3ec4c31bad087673..24a9cf0e5614205f39b507d335484f697da90f61 100644 |
| --- a/gcc/gcc/config/i386/i386.c |
| +++ b/gcc/gcc/config/i386/i386.c |
| @@ -19111,7 +19111,13 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, |
| fnaddr = gen_rtx_MEM (QImode, fnaddr); |
| } |
| - call = gen_rtx_CALL (VOIDmode, fnaddr, callarg1); |
| + if (!TARGET_NACL |
| + || (GET_CODE (fnaddr) == MEM |
| + && constant_call_address_operand (XEXP (fnaddr, 0), Pmode))) |
| + call = gen_rtx_CALL (VOIDmode, fnaddr, callarg1); |
| + else |
| + call = gen_rtx_UNSPEC (VOIDmode, gen_rtvec (2, fnaddr, callarg1), |
|
pasko-google - do not use
2010/06/21 21:42:11
did you investigate the possibility to make a (cal
eaeltsin
2010/06/22 04:04:55
I generate rtl that is matchable with naclcall def
|
| + UNSPEC_NACLCALL); |
| if (retval) |
| call = gen_rtx_SET (VOIDmode, retval, call); |
| if (pop) |