David Chisnall
f1c323b0a2
Add (untested!) updates to the MIPS / ARM asm paths.
10 years ago
David Chisnall
f06508bfd9
Fix typo in comment.
10 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
David Chisnall
de8e5f26ee
Use a simple C array for the selector types list.
...
The sparse array is not a particularly good fit. It allowed us to do a
few things without locking, but those things were not on the critical
path anyway and it added complexity and memory usage for little gain.
This removes the only non-dtable user of the sparse array, which should
mean that we're able to optimise the sparse array for that single use a
bit better.
10 years ago
David Chisnall
8b1d4fbcc2
TEST is a keyword in if() statements in recent CMake, rename a variable to avoid a conflict.
10 years ago
David Chisnall
b581098831
Extend the objc_msgSend test to check for register saving.
...
Ensure, when we bounce out from the assembly into C and back again, that
the argument values are preserved. Tests 10 integer and 10 floating
point arguments, which should cover all of the argument registers and at
least one stack slot on all supported platforms.
10 years ago
David Chisnall
2f57b0b688
Tweak the block trampolines to work with the win64 calling convention (untested!).
10 years ago
David Chisnall
76ed20acdb
Remove build systems that were deprecated a long time ago.
10 years ago
David Chisnall
3135e30d71
Fix ARC assignment of blocks.
...
We were not correctly checking that the object being assigned had a
reference count in the object header. We're also now avoiding assigning
small objects to the weak reference table, which is quite important as
they have no destructor.
Fixes #12
10 years ago
David Chisnall
84c0bfe7b0
Fix two small bugs in the hopscotch hash that meant that moving elements near the end of the array sometimes caused them to become lost.
10 years ago
Niels Grewe
2795950ef5
Re-add ghostly .travis.yml
10 years ago
David Chisnall
794ac2a3ee
Fix copy and paste duplication of a line.
10 years ago
David Chisnall
6a0f909e06
Don't use an obsolete header in a test.
10 years ago
David Chisnall
53bc9f3892
Fix the size of run-time generated root classes.
...
The size of the new class with should be sizeof(Class), not sizeof(struct objc_class).
10 years ago
davidchisnall
d3bcc30e92
Merge pull request #8 from ngrewe/gcc_atomics
...
Set -march flag for atomic operations builtins even when not compiling with clang
10 years ago
Niels Grewe
5a7fcc0165
Remove .travis.yml for clean patch
10 years ago
Niels Grewe
40b7f872e9
Also specify -march=i586 when compiling with gcc
10 years ago
Niels Grewe
f1c58120b9
Remove bogus workaround for build system issue
10 years ago
Niels Grewe
8b5e85a95c
Set the -pthread compiler flag when pthreads is used.
...
Apparently, setting -lpthread is not enough to convince gcc to actually
link a thread library, so if we are using pthreads, set the -pthread
flag as well. It fixes the gcc situation and doesn't have any adverse
effects for clang either.
10 years ago
Niels Grewe
57856fb507
Merge remote-tracking branch 'upstream/master'
10 years ago
Niels Grewe
9ed74c2859
Merge branch 'property_encoding'
10 years ago
davidchisnall
b55071b370
Merge pull request #6 from ngrewe/property_encoding
...
Be more lenient when accepting property encodings produced by clang
10 years ago
Niels Grewe
c5ae4432e0
Be more lenient when accepting property encodings produced by clang. Cf. gnustep/libobjc2#5 .
10 years ago
Niels Grewe
9c62645bf1
Be more lenient when accepting property encodings produced by clang. Cf. gnustep/libobjc2#5 .
10 years ago
Niels Grewe
f4b83fbd53
Merge remote-tracking branch 'upstream/master'
10 years ago
Niels Grewe
92d29b963a
Test travis
10 years ago
davidchisnall
27933a9be7
Merge pull request #4 from ngrewe/nil_exception
...
Fix throwing nil exceptions.
11 years ago
Niels Grewe
1ac152032a
Merge branch 'master' into nil_exception
...
Conflicts:
Test/CMakeLists.txt
11 years ago
Niels Grewe
e121b34a9f
Check other exception handlers that should/shouldn't catch nil.
11 years ago
davidchisnall
3443925636
Merge pull request #3 from ngrewe/master
...
Fix returning argument types from methods.
11 years ago
Niels Grewe
dbf392ce99
Move indexing fix into findParameterStart()
11 years ago
Niels Grewe
b2e7c50704
Fix throwing nil exceptions.
11 years ago
Niels Grewe
cbacd87632
Add missing changes
11 years ago
Niels Grewe
44627f69e7
Also fix method_getArgumentType(). Add test case.
11 years ago
Niels Grewe
abb0d1e931
Fix returning argument types from methods.
11 years ago
David Chisnall
b0fba94d8b
Added 1.8.1 release announcement to master branch.
11 years ago
David Chisnall
27d4bd055a
Merge fixes from my temporary fork.
11 years ago
David Chisnall
bdfcc0fc79
Fix copy and paste error in release announcement.
11 years ago
David Chisnall
181c0a4d7c
Copied 1.8 release announcement for archiving.
11 years ago
David Chisnall
e232cdb0bd
Updated URLs in the ANNOUNCE.
11 years ago
David Chisnall
857edd9ef7
Fix the README name for CPack.
11 years ago
David Chisnall
913e271963
Fix some omissions in the last commit.
11 years ago
David Chisnall
7e312ef680
The README file is mostly markdown. Make it properly markdown and give it an extension to match.
11 years ago
David Chisnall
a74542ae4f
Add a test that hidden classes are correctly deallocated and don’t leave the runtime in an undefined state.
11 years ago
David Chisnall
d6ca506d6a
Make sure that we remove hidden classes from the subclass list, as well as adding them. Also make sure that subclass list manipulation is protected by the runtime lock.
11 years ago
David Chisnall
71c1437ac2
If we find LLVM, but fail to find the relevant cmake modules, give a helpful error and then continue without building the optimisations, instead of just dying.
11 years ago
David Chisnall
4951043022
Add .gitignore.
11 years ago
rfm
7f007e354e
fix bug in small object test on 64bit systems
12 years ago
ivucica
4742f71d29
Added #define __has_builtin into block_to_imp.c.
12 years ago