14 Commits (934cd13a7a346dc0f3d8466fd180a127354a0ee5)

Author SHA1 Message Date
David Chisnall 934cd13a7a Initial pass at Windows support.
All tests now pass with the new ABI on x86-64, with the new ABI.  Some
of the code is ugly and other platforms are probably broken.
8 years ago
David Chisnall 5dd82df81e Fix x86-32 objc_msgSend for new sarray structure. 10 years ago
David Chisnall 5107130277 Move the data for sparse arrays into the tree structure.
This saves one load on the message send path for each tree depth (2
loads in the common case, 3 if you have a lot of selectors), which
should improve cache usage considerably.

Note: This is a checkpoint commit.  Currently, every objc_msgSend()
implementation except for x86-64 is broken.
10 years ago
ericwa 317e951b0c libobjc2: some changes needed to build on OS X. CDECL macro to prefix symbol names in assembly code with an underscore, macros to omit the .type and .section derictives which are unsupported on OS X, and also a linker flag to make weak symbols work 13 years ago
theraven f50bc6cf33 Added support for tracing message sends to the runtime.
Currently x86-64 only.
13 years ago
theraven d80689e3e4 Remove the test for whether the uninstalled dtable is present from
objc_msgSend().  If the class does have the uninstalled dtable, then every
method will be the nil slot and so, after navigating the dtable we will
discover that it is nil and go into the slow path.  The cost of this change is
a slight slowdown in the first message sent to every class.  The benefit is
that every subsequent message send needs one fewer memory access and one fewer
conditional jump.
13 years ago
theraven 3fbdbe4d02 Work around a bug in clang 3.1 that declares objc_msgSend_stret as a builtin
with the wrong signature.
13 years ago
theraven aece370989 Fix objc_msgSend_stret() when the receiver is a small object. 14 years ago
theraven 855f2601c9 Fix some corner cases where exceptions are thrown through +initialize. 14 years ago
theraven 949469677e Fpret stuff (not very tested). 14 years ago
theraven 224de356cb Save %xmm when it can be used for args, put the args in the right order. 14 years ago
theraven 1e3343c149 And the same x86-64 / ARM (need testing!) 14 years ago
theraven fb1d76ceaa Fix typo. 14 years ago
theraven 2e73765ffa Added some experimental stuff. 14 years ago