gecko/xpcom/glue
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
..
nomozalloc Bug 945118 - Build more of XPCOM in unified mode; r=glandium 2013-12-01 10:47:52 -05:00
standalone Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal 2013-11-27 22:55:07 +09:00
staticruntime Bug 945118 - Build more of XPCOM in unified mode; r=glandium 2013-12-01 10:47:52 -05:00
tests/gtest Bug 939206 - Fix build error in test code on B2G r=me 2013-12-07 16:09:12 +00:00
AppData.cpp
AppData.h
AutoRestore.h
BlockingResourceBase.cpp Backed out changeset 4887ddabba31 (bug 939231) for mochitest hangs. 2013-11-21 09:39:38 -05:00
BlockingResourceBase.h Backed out changeset 4887ddabba31 (bug 939231) for mochitest hangs. 2013-11-21 09:39:38 -05:00
CondVar.h
DeadlockDetector.cpp Backed out changeset 4887ddabba31 (bug 939231) for mochitest hangs. 2013-11-21 09:39:38 -05:00
DeadlockDetector.h Backed out changeset 4887ddabba31 (bug 939231) for mochitest hangs. 2013-11-21 09:39:38 -05:00
FileUtils.cpp Bug 927427 - use __LP64__ in FileUtils.cpp for Linux; r=bsmedberg 2013-10-16 11:14:05 -04:00
FileUtils.h Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
GenericFactory.cpp
GenericFactory.h
GenericModule.cpp Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
HoldDropJSObjects.h Bug 912747 - Change nsCycleCollectionHoldDrop.h to mozilla/HoldDropJSObjects.h. r=khuey 2013-09-10 08:29:43 -07:00
IntentionalCrash.h
MainThreadUtils.h Bug 923486, part 2 - Define NS_IsMainThread out-of-line in ASAN builds. r=ehsan 2013-10-03 11:58:41 -07:00
Makefile.in Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal 2013-11-27 22:55:07 +09:00
Monitor.h
moz.build Bug 946732 - Reinstate xpcom/glue gtests r=BenWa 2013-12-05 16:48:48 +00:00
Mutex.h
nsArrayEnumerator.cpp Bug 672843 part C - convert most of XPCOM except for xpcom/tests, r=vdjeric 2013-11-19 16:27:37 -05:00
nsArrayEnumerator.h
nsArrayUtils.cpp
nsArrayUtils.h
nsBaseHashtable.h Bug 947578 - Expose Contains on nsBaseHashtable. r=froydnj 2013-12-08 11:08:58 +11:00
nsCategoryCache.cpp Bug 753687 - nsCategoryCache implementation doesn't free old category entries if their contract mapping is removed using .unregisterFactory. Store the factory objects directly in the map, instead of keeping both a map and a separate list. r=froydnj 2013-10-10 08:48:03 -04:00
nsCategoryCache.h Bug 753687 - nsCategoryCache implementation doesn't free old category entries if their contract mapping is removed using .unregisterFactory. Store the factory objects directly in the map, instead of keeping both a map and a separate list. r=froydnj 2013-10-10 08:48:03 -04:00
nsClassHashtable.h Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
nsClassInfoImpl.cpp Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
nsCOMArray.cpp Bug 672843 part C - convert most of XPCOM except for xpcom/tests, r=vdjeric 2013-11-19 16:27:37 -05:00
nsCOMArray.h Bug 947626 - Fix index types in nsCOMArray CC helpers and remove whitespace. r=froydnj 2013-12-08 08:56:00 -08:00
nsComponentManagerUtils.cpp Bug 672843 part C - convert most of XPCOM except for xpcom/tests, r=vdjeric 2013-11-19 16:27:37 -05:00
nsComponentManagerUtils.h
nsCOMPtr.cpp
nsCOMPtr.h Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
nsCRTGlue.cpp Bug 942483 - Port paint-dumping to android/b2g. r=gal 2013-11-23 17:44:18 -05:00
nsCRTGlue.h Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
nsCycleCollectionNoteChild.h
nsCycleCollectionNoteRootCallback.h
nsCycleCollectionParticipant.cpp Bug 915488 - Make CC participant's Root, Unroot and Unlink methods infallible. r=smaug 2013-09-11 18:57:53 -07:00
nsCycleCollectionParticipant.h Bug 915488 - Make CC participant's Root, Unroot and Unlink methods infallible. r=smaug 2013-09-11 18:57:53 -07:00
nsCycleCollectionTraversalCallback.h Bug 937303 - Make CC logger to pass information about compartments, r=mccr8 2013-11-12 15:53:51 +02:00
nsDataHashtable.h Bug 910989. Remove nsTHashtable::Init, fallible allocation, and MT hashtables. r=ehsan,bsmedberg 2013-09-02 20:41:57 +12:00
nsDebug.h Bug 944410 - add missing #include <stdarg.h> for va_list on OpenBSD after bug 942483 r=bgirard 2013-11-30 13:48:34 +01:00
nsDeque.cpp Bug 901820 - Part 2. Remove nsCRT::strdup/nsCRT::strndup impl. r=bsmedberg 2013-08-22 19:32:11 +09:00
nsDeque.h Bug 938794 - Annotate OOM size as infallible string or data structures abort, r=froydnj 2013-11-25 15:06:17 -05:00
nsEnumeratorUtils.cpp
nsEnumeratorUtils.h
nsHashKeys.h Bug 940142 - Add a lightweight generic hash key class to nsHashKeys.h. r=bsmedberg 2013-12-03 16:23:32 -08:00
nsIClassInfoImpl.h Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
nsID.cpp Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
nsID.h
nsIInterfaceRequestorUtils.cpp
nsIInterfaceRequestorUtils.h
nsINIParser.cpp Bug 672843 part C - convert most of XPCOM except for xpcom/tests, r=vdjeric 2013-11-19 16:27:37 -05:00
nsINIParser.h
nsInterfaceHashtable.h Bug 910989. Remove nsTHashtable::Init, fallible allocation, and MT hashtables. r=ehsan,bsmedberg 2013-09-02 20:41:57 +12:00
nsISupportsImpl.cpp Bug 950882 - micro-optimize NS_TableDrivenQI calling sequence by reordering argument list; r=bsmedberg 2013-12-13 19:50:02 -05:00
nsISupportsImpl.h Bug 950882 - micro-optimize NS_TableDrivenQI calling sequence by reordering argument list; r=bsmedberg 2013-12-13 19:50:02 -05:00
nsISupportsUtils.h Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
nsIWeakReferenceUtils.h
nsJSThingHashtable.h
nsMemory.cpp Bug 672843 part C - convert most of XPCOM except for xpcom/tests, r=vdjeric 2013-11-19 16:27:37 -05:00
nsMemory.h
nsProxyRelease.cpp
nsProxyRelease.h Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
nsQuickSort.cpp Bug 941405 - Remove the usages of the register keyword from XPCOM; r=froydnj 2013-11-21 10:42:40 -05:00
nsQuickSort.h
nsRefPtrHashtable.h Bug 910989. Remove nsTHashtable::Init, fallible allocation, and MT hashtables. r=ehsan,bsmedberg 2013-09-02 20:41:57 +12:00
nsServiceManagerUtils.h
nsStringAPI.cpp
nsStringAPI.h Bug 928351 - Char16.h and xpcom/strings/public parts r=ehsan,Waldo 2013-11-27 14:40:54 +01:00
nsStringGlue.h Bug 918923 - Part 1: Fix the include-what-you-use pragmas in the string headers; r=bsmedberg 2013-09-23 13:23:56 -04:00
nsTArray-inl.h Bug 938794 - Annotate OOM size as infallible string or data structures abort, r=froydnj 2013-11-25 15:06:17 -05:00
nsTArray.cpp
nsTArray.h Bug 939206 - Fix nsTArray post barriers for JS::Heap<T> elements r=bsmedberg 2013-12-07 12:50:28 +00:00
nsTArrayForwardDeclare.h
nsTextFormatter.cpp Bug 945592 - Convert the type macros in nsTextFormatter.cpp to enum values; r=froydnj 2013-12-03 15:41:25 -05:00
nsTextFormatter.h Bug 928040 - Remove some prtypes.h inclusions from xpcom/; r=bsmedberg 2013-10-18 20:34:57 -04:00
nsTHashtable.cpp
nsTHashtable.h Bug 938794 - Annotate OOM size as infallible string or data structures abort, r=froydnj 2013-11-25 15:06:17 -05:00
nsThreadIDs.h
nsThreadUtils.cpp Bug 672843 part C - convert most of XPCOM except for xpcom/tests, r=vdjeric 2013-11-19 16:27:37 -05:00
nsThreadUtils.h Bug 672843 part C - convert most of XPCOM except for xpcom/tests, r=vdjeric 2013-11-19 16:27:37 -05:00
nsTObserverArray.cpp
nsTObserverArray.h
nsTPriorityQueue.h
nsTraceRefcnt.h
nsTWeakRef.h
nsVersionComparator.cpp Bug 944905 - Fixed char16_t/wchar_t mismatch in xpcom/ r=bsmedberg 2013-12-04 13:19:09 +01:00
nsVersionComparator.h
nsVoidArray.cpp Bug 935789, part 1: Kill most uses of prbit.h, r=ehsan 2013-11-12 18:22:38 -06:00
nsVoidArray.h Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
nsWeakReference.cpp
nsWeakReference.h
nsXPTCUtils.h
objs.mozbuild Bug 921492 - Make StrictOrderingOnAppendList use actual alphabetical sorting. r=mshal,r=gps 2013-10-24 08:05:43 +09:00
Observer.h
pldhash.cpp Bug 935789, part 1: Kill most uses of prbit.h, r=ehsan 2013-11-12 18:22:38 -06:00
pldhash.h Bug 933605 (part 1) - Remove DEBUG_XXXbrendan-only code. r=jorendorff. 2013-10-31 22:30:45 -07:00
ReentrantMonitor.h b=928222 move ReentrantMonitorAutoExit from VideoUtils.h to ReentrantMonitor.h r=bsmedberg 2013-10-24 07:22:53 +13:00
unused.cpp
unused.h