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
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
9e51aabc98
Fix block trampolines to work when mixed with Thumb-2 code.
10 years ago
David Chisnall
ef458104dd
Remove some debugging code.
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
77df8d3d92
Remove debugging line.
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
ivucica
4742f71d29
Added #define __has_builtin into block_to_imp.c.
12 years ago
theraven
dc241dc1bf
Make sure that we flush the instruction cache when creating a new IMP at run
...
time.
12 years ago
theraven
6394126bfe
Some cleanups in block to IMP conversion.
...
On FreeBSD (and other platforms that choose to implement the , allocate the
memory via the anonymous shared memory mechanism, removing the need for the
temporary file. On other POSIX platforms, correctly use mkstemp().
12 years ago
theraven
8baefbe5c8
Expose asprintf() with glibc.
13 years ago
thebeing
f845df37c1
Add objc/blocks_private.h header to expose some internals of the blocks runtime
...
that are accessed by libdispatch. Also rename the relevant structs to be
compatible with the BlocksRuntime from compiler-rt.
14 years ago
thebeing
e8645c8ceb
Small QNX compatibility tweak.
14 years ago
theraven
f9f2e4e313
Added a function for getting the type encoding for a block returned by imp_implementationFromBlock().
14 years ago
theraven
43ee8b9819
Add initial support for imp_implementationWithBlock() and friends. Currently
...
only works on x86 and x86-64 and doesn't work with sret functions.
14 years ago