890 Commits (81ef7a98166cdae97336c5143fceb3eb5a661136)
 

Author SHA1 Message Date
David Chisnall 81ef7a9816 Don’t fail the test if we get more attributes than we expect.
Attribute lists are not null-terminated, so this would previously have gone off into memory that it was not meant to access.
10 years ago
David Chisnall d692a0ede4 Remove some definitions that hide non-standard libc functions that we use. 10 years ago
David Chisnall 46ce44bbf5 Enable Travis testing on OS X. 10 years ago
David Chisnall 79cade0a68 Trivial change to hopefully poke Travis into working. 10 years ago
David Chisnall 0d9deaa76f Add (hopefully) Travis CI badge to the README. 10 years ago
David Chisnall 6de70135e8 Don't abort if NSAutoreleasePool is not found.
Fixes #17
10 years ago
davidchisnall 2693c02626 Merge pull request #15 from ngrewe/ivars
Fix a segfault on (s|g)etting ivars.
10 years ago
Niels Grewe f264fd159d Fix a segfault on (s|g)etting ivars.
When we were trying to get or set an ivar on a class that had
no ivars defined, we'd dereference a NULL ivar list while
determining the ownership qualifier.
10 years ago
David Chisnall 4ab78aa49a Check for Thumb-2 more explicitly. 10 years ago
David Chisnall c8848614b5 Now that we’re not marking the block trampoline functions as functions, the start and end symbols will appear as normal data pointers with no Thumb mangling, so remove the code that unmangles them. 10 years ago
David Chisnall cbdc6c8786 Reorganise block_trampolines.S to have a lot less copy-and-pasting. 10 years ago
David Chisnall 3dcb70bf59 Don’t use a NEON instruction on ARM variants that don’t have NEON. 10 years ago
David Chisnall 77484cb3cb Add missing declaration to ARM unwind header. 10 years ago
David Chisnall 03141616ab Added notes to ANNOUNCE about the Thumb-2 work. 10 years ago
David Chisnall 9e51aabc98 Fix block trampolines to work when mixed with Thumb-2 code. 10 years ago
David Chisnall f5f60ecadd Use Thumb-2 for the objc_msgSend code where available. 10 years ago
David Chisnall 5d0b579931 Fix a missing pop that had become lost in the move to use predicated
instructions.
10 years ago
David Chisnall 8e2d730f95 Return 0 as a floating point value for ARM hardware FP.
Note that this code path is currently unused by Clang, which does the
nil check in the caller for fpret functions.
10 years ago
David Chisnall 66c4154b06 Use bx for calling methods so that thumb / ARM interop should work. 10 years ago
David Chisnall dfe485de34 Slightly simplify the fall-through to the slow path to avoid a branch. 10 years ago
David Chisnall 2ea11117a3 Remove the LLVM optimisation passes. They don’t work with a recent LLVM, can be recovered from git if required, and are better off being upstreamed into LLVM if they make sense. 10 years ago
David Chisnall c7c193e4c7 Use the correct compare instruction. 10 years ago
David Chisnall b952a21abe Add objc_msgSend for AArch64.
An interesting feature of the AArch64 ABI simplifies this code relative to other platforms.  AArch64 reserves an extra register (x8) for the address of struct returns, giving the
10 years ago
David Chisnall fecddec3f3 Implement AArch64 block trampolines. 10 years ago
davidchisnall c6dd7d13b7 Merge pull request #13 from ngrewe/ci
Fix the objc_msgSend testcase (typo) and add a .travis.yml for CI builds
10 years ago
Niels Grewe 16d563fc14 Run ctest directly for travis CI builds 10 years ago
Niels Grewe 2fbf85c06a Merge branch 'master' into ci 10 years ago
Niels Grewe a6e65cea04 Fix typo in test function 10 years ago
Niels Grewe 28a218451d Merge branch 'master' into ci 10 years ago
Niels Grewe 20c2d78661 Merge branch 'master' of github.com:ngrewe/libobjc2 10 years ago
David Chisnall 4a59b2a986 Set up the new forwarding hook in the objc_msgSend test.
This is probably wrong, as we should be calling forward2 if forward3 is not set, but it makes the test pass for now.
10 years ago
David Chisnall 5c6cd3cb70 Set up the new forwarding hook in the objc_msgSend test.
This is probably wrong, as we should be calling forward2 if forward3 is not set, but it makes the test pass for now.
10 years ago
David Chisnall 9c7cc6ac25 Save the floating point registers in the correct place on ARM.
Note to self: It is very important, when you have tested a set of changes, to commit those changes and not a misapplied diff of approximately those changes.
10 years ago
David Chisnall 5cf6d6ac13 Make the message send test actually test thing things that it's supposed
to.
10 years ago
David Chisnall 8583fc7f61 Explicitly make char signed in the property introspection test. The C spec allows char to be either signed or unsigned. If it’s unsigned (as it is on ARM), then the test will fail with the wrong encoding. 10 years ago
David Chisnall cfb87b0cf9 Preserve floating point argument registers across calls out to the slow path. 10 years ago
David Chisnall bd790df7e3 Disable building LLVM passes for now. It’s unlikely that anyone actually wants them at the moment, and we should probably remove them at some future date. 10 years ago
David Chisnall ef458104dd Remove some debugging code. 10 years ago
David Chisnall 034cb08c10 Provide code paths for pre-ARMv6t2 ARM ISAs. 10 years ago
David Chisnall 197018f090 Fix objc_msgSend on ARM.
When loading the slot, it’s quite important to load it into the register where you’re going to use it!
10 years ago
David Chisnall a36013f090 Fix the offsets in the ARM block trampoline. 10 years ago
David Chisnall 1933167046 Copy (retain) blocks when they are used as IMPs. 10 years ago
David Chisnall e8604511a6 Fix block metadata address calculation. 10 years ago
David Chisnall e8e5f1e254 Try calling the IMP directly before calling it indirectly in the block-as-method test.
This makes debugging *much* easier!
10 years ago
David Chisnall 813a26025d Remove an instruction that should have been deleted with the dtable rewrite. 10 years ago
David Chisnall 7d1ea63046 Silence some valgrind warnings.
The ignored field is never used, so it doesn't matter that the
comparison to the old value is reading uninitialised memory (unless the
compiler is clever enough to spot that this is undefined behaviour and
do something evil).
10 years ago
David Chisnall 42b78dba9b (Hopefully) fix C++ exception interop on ARM. 10 years ago
David Chisnall 77df8d3d92 Remove debugging line. 10 years ago
David Chisnall afc784175c Update release notes for last commit. 10 years ago
David Chisnall 7eeffe9d09 Rewrite the block-to-imp code so that:
- We reuse the memory allocated for blocks
- We no longer have the same physical page mapped write and execute
10 years ago