Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(415)

Unified Diff: gcc/gcc/config/i386/i386.c

Issue 2850019: [gcc] Eliminate control integrity pass in favor of nacl instructions generation from the start. (Closed) Base URL: ssh://git@chromiumos-git/nacl-toolchain.git
Patch Set: Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
« no previous file with comments | « gcc/gcc/Makefile.in ('k') | gcc/gcc/config/i386/i386.md » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
« no previous file with comments | « gcc/gcc/Makefile.in ('k') | gcc/gcc/config/i386/i386.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698