[dylan-lang/opendylan] 072c8b: [llvm] Implement <&objc-msgsend>.
GitHub <[email protected]> Wed, 06 Jan 2016 15:37:35 -0800
| Newsgroups | gmane.comp.lang.dylan.gwydion.cvs |
|---|---|
| Message-ID | <568da53fe7ba3_77d03f96c445b2b847017@hookshot-fe6-cp1-prd.iad.github.net.mail> |
----==_mimepart_568da53fe7776_77d03f96c445b2b8469d8
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Branch: refs/heads/master
Home: https://github.com/dylan-lang/opendylan
Commit: 072c8ba52b2da7b1d835bb2427708ddf63fd6620
https://github.com/dylan-lang/opendylan/commit/072c8ba52b2da7b1d835bb2427708ddf63fd6620
Author: Bruce Mitchener <[email protected]>
Date: 2016-01-06 (Wed, 06 Jan 2016)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
M sources/dfmc/llvm-linker/llvm-link-object.dylan
Log Message:
-----------
[llvm] Implement <&objc-msgsend>.
The Objective C bridge uses a separate primitive, <&objc-msgsend>,
for calling objc_msgSend at the native level. This primitive hadn't
yet been implemented in the LLVM back-end.
* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
(emit-primitive-call on <&objc-msgsend>): Implement sending Objective C
messages via objc_msgSend. Since the function signature of the message
sending function (objc_msgSend or friends) is not complete, it must be
cast to the correct function signature at each call site.
* sources/dfmc/llvm-linker/llvm-link-object.dylan
(emit-extern on <&objc-msgsend>): Provide the needed global function
declarations for objc_msgSend and friends. There are multiple functions
that might be invoked, so we get the correct name to define from
the c-function-name.
Commit: a8f484e270f176d22692d20b7a90927c6b98bbd2
https://github.com/dylan-lang/opendylan/commit/a8f484e270f176d22692d20b7a90927c6b98bbd2
Author: Bruce Mitchener <[email protected]>
Date: 2016-01-06 (Wed, 06 Jan 2016)
Changed paths:
M sources/dfmc/conversion/convert-c-ffi.dylan
Log Message:
-----------
[c-ffi] Fix %obc-msgsend generated code.
This was creating code that used <raw-machine-word>, however the
calling code was passing <raw-c-pointer>, and while this worked on
the C back-end, it failed (rightfully) on the LLVM back-end.
* sources/dfmc/conversion/convert-c-ffi.dylan
(&converter %objc-msgsend): Use <raw-c-pointer> for the target
and selector rather than <raw-machine-word>.
Compare: https://github.com/dylan-lang/opendylan/compare/a6e112b7aea2...a8f484e270f1
----==_mimepart_568da53fe7776_77d03f96c445b2b8469d8
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
chatter mailing list
[email protected]
https://lists.opendylan.org/mailman/listinfo/chatter
----==_mimepart_568da53fe7776_77d03f96c445b2b8469d8--