gecko/xpcom
Nathan Froyd 6182f5bef4 Bug 950882 - micro-optimize NS_TableDrivenQI calling sequence by reordering argument list; r=bsmedberg
For register-rich ABIs (e.g. x86-64 and ARM), QueryInterface's incoming
registers are going to look like:

arg register 1: |this|
arg register 2: the IID of interest
arg register 3: the outparam instance pointer

Most of our QI implementations call NS_TableDrivenQI, which expects
arguments like so:

arg register 1: |this|
arg register 2: the QITableEntry table
arg register 3: the IID of interest
arg register 4: the outparam instance pointer

So we're going to have to do a register shuffle of the IID and the
outparam to be able to load the QITableEntry pointer before calling into
NS_TableDrivenQI.

This patch reorders the argument list of NS_TableDrivenQI so that the
first three arguments match the order that QueryInterface receives them
in.  Then your typical QueryInterface implementation becomes:

- load local |table|
- tail-call NS_TableDrivenQI

Eliminating the register shuffling reduces text size by 12K on an
Android ARM build.
2013-12-13 19:50:02 -05:00
..
analysis Bug 943728 - Replace double quotes with single quotes in Makefiles (or remove them when it makes sense). r=mshal 2013-12-03 06:34:21 +09:00
base bug 918389 - move XPCOM abort messages into separate crash annotations. r=bsmedberg 2013-12-20 10:11:16 -05:00
build Bug 950856 - Fail the build if you attempt to use NS_StackWalk on Windows where it won't work; r=froydnj,BenWa 2013-12-18 15:03:11 -05:00
components Bug 676907 - Refactor (replace) calls to Gestalt because it is deprecated in OS X 10.8 and will not work in after 10.9. r=BenWa 2013-12-19 11:42:19 -05:00
doc
ds Bustage followup to bug 767343 in non-unified builds 2013-12-06 16:59:35 -05:00
glue Bug 950882 - micro-optimize NS_TableDrivenQI calling sequence by reordering argument list; r=bsmedberg 2013-12-13 19:50:02 -05:00
idl-parser Bug 907902 - Create system isolated virtualenv, remove --system-ply support; r=glandium 2013-09-16 17:21:59 -07:00
io Bug 943511 - Remove allocator parameters from methods using nsSegmentedBuffer. r=bsmedberg 2013-12-11 14:14:56 -05:00
libxpt/xptcall
reflect Bug 945042 - Move NO_PROFILE_GUIDED_OPTIMIZE to moz.build. r=gps,r=njn 2013-12-09 13:39:26 +09:00
sample Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal 2013-11-27 22:55:07 +09:00
string Bug 951110 - Make AssertValidDepedentString() more informative. r=bsmedberg. 2013-12-19 10:15:34 +02:00
system Bug 948238 - Read browser.tabs.remote once at startup and never again (r=bsmedberg) 2013-12-12 14:13:20 -08:00
tests bug 949821 - use MOZ_UTF16 more and NS_LITERAL_STRING less r=froydnj 2013-12-12 20:50:01 -05:00
threads Bug 949749 - Fix up include guard in SyncRunnable.h. r=froydnj 2013-12-12 16:30:59 -08:00
tools
typelib Bug 939074 - Remove most LIBXUL_LIBRARY. rs=gps 2013-11-19 11:48:10 +09:00
windbgdlg Bug 933135 - Treat SIMPLE_PROGRAMS more like PROGRAM. r=mshal 2013-11-02 08:43:55 +09:00
xpidl Bug 921816 - Handle idls in --with-libxul-sdk builds. r=gps 2013-11-07 10:37:44 +09:00
Makefile.in Bug 912293 - Remove now redundant boilerplate from Makefile.in. r=gps 2013-09-05 09:01:46 +09:00
moz.build Bug 939044 - Remove most definitions of MODULE. r=mshal 2013-11-19 11:47:39 +09:00
xpcom-config.h.in Bug 904985, part 2: Use char16_t for NS_LITERAL_STRING, r=glandium, dbaron. 2013-09-17 22:43:12 -05:00
xpcom-private.h.in