Mercurial > pub > dyncall > dyncall
changeset 139:5675d34f0a06
- mips64 doc about impl status
- some more verbose output for one test
author | cslag |
---|---|
date | Mon, 08 Aug 2016 11:54:27 +0200 |
parents | 1b0c02e827c4 |
children | 706935b8a4fa e63089fe5bef |
files | doc/manual/callconvs/callconv_mips.tex doc/manual/callconvs/callconv_mips64.tex doc/manual/manual_overview.tex test/callback_plain/callback_plain.c |
diffstat | 4 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/manual/callconvs/callconv_mips.tex Mon Aug 08 11:24:25 2016 +0200 +++ b/doc/manual/callconvs/callconv_mips.tex Mon Aug 08 11:54:27 2016 +0200 @@ -37,8 +37,9 @@ \paragraph{\product{dyncall} support} -Currently, dyncall supports for MIPS 32-bit architectures the widely-used O32 calling convention, as well as EABI (which is used on the Homebrew SDK for -the Playstation Portable). \product{dyncall} currently does not support MIPS16e (contrary to the like-minded ARM-THUMB, which is supported). Both, calls and callbacks are supported. +Currently, dyncall supports for MIPS 32-bit architectures the widely-used O32 calling convention (for big- and little-endian targets), +as well as EABI (which is used on the Homebrew SDK for the Playstation Portable). \product{dyncall} currently does not support MIPS16e +(contrary to the like-minded ARM-THUMB, which is supported). Both, calls and callbacks are supported. \subsubsection{MIPS EABI 32-bit Calling Convention}
--- a/doc/manual/callconvs/callconv_mips64.tex Mon Aug 08 11:24:25 2016 +0200 +++ b/doc/manual/callconvs/callconv_mips64.tex Mon Aug 08 11:54:27 2016 +0200 @@ -29,8 +29,8 @@ \paragraph{\product{dyncall} support} -For MIPS 64-bit machines, dyncall supports the N32 and N64 calling conventions for calls and callbacks. -Our test machine is a Loongson-CPU 2F subnotebook, as well as an EdgeRouter Lite, both running OpenBSD. +For MIPS 64-bit machines, dyncall supports the N64 calling conventions for calls and callbacks (for big- and little-endian targets). +The N32 calling convention might work - it used to, but hasn't been tested, recently. \subsubsection{MIPS N64 Calling Convention}
--- a/doc/manual/manual_overview.tex Mon Aug 08 11:24:25 2016 +0200 +++ b/doc/manual/manual_overview.tex Mon Aug 08 11:54:27 2016 +0200 @@ -158,10 +158,11 @@ \begin{table}[h] \begin{tabular}{r|*{3}{c!{\color{gray2}\vrule}}*{4}{c!{\color{gray2}\vrule}}*{10}{c!{\color{gray2}\vrule}}} & \ninety{\bf Alpha} & \ninety{\bf ARM} & \ninety{\bf ARM64} & \multicolumn{2}{c!{\color{gray2}\vrule}}{\ninety{\bf MIPS}} & \multicolumn{2}{c!{\color{gray2}\vrule}}{\ninety{\bf MIPS64}} & \ninety{\bf SuperH} & \ninety{\bf PowerPC} & \ninety{\bf PowerPC64} & \ninety{\bf m68k} & \ninety{\bf m88k} & \ninety{\bf x86} & \ninety{\bf x64} & \ninety{\bf Itanium} & \ninety{\bf SPARC} & \ninety{\bf SPARC64} \\ +% also include hardfloat, here@@@ & & & & \ninety{\tiny EB} & \ninety{\tiny EL} & \ninety{\tiny EB} & \ninety{\tiny EL} & & & & & & & & & & \\ \hline {\bf Windows family} & \marknotx & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknimp & \marknotx & \marknotx \\ -{\bf Linux} & \marknimp & \markcmpl & \markcmpl & \markunkn & \markunkn & \markunkn & \markunkn & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \markimpl & \markimpl \\ +{\bf Linux} & \marknimp & \markcmpl & \markcmpl & \markcmpl & \markunkn & \markunkn & \markcmpl & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \markimpl & \markimpl \\ {\bf macOS / iOS / Darwin} & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markunkn & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx \\ {\bf FreeBSD} & \marknimp & \markcmpl & \markcmpl & \markunkn & \markunkn & \markunkn & \markunkn & \marknimp & \markimpl & \markcmpl & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknimp & \markunkn & \markunkn \\ {\bf NetBSD} & \marknimp & \markcmpl & \marknotx & \markunkn & \markcmpl & \markunkn & \markunkn & \marknimp & \markimpl & \marknotx & \marknimp & \marknimp & \markcmpl & \markcmpl & \marknimp & \markimpl & \markunkn \\
--- a/test/callback_plain/callback_plain.c Mon Aug 08 11:24:25 2016 +0200 +++ b/test/callback_plain/callback_plain.c Mon Aug 08 11:54:27 2016 +0200 @@ -66,10 +66,12 @@ dcTest_initPlatform(); - printf("about to callback...\n"); cb = dcbNewCallback("ifsdl)s", &cbHandler, &userdata); + printf("about to callback (trampoline for 0x%tx at 0x%tx)...\n", &cbHandler, cb); + result = ((short(*)(int, float, short, double, long long))cb)(123, 23.f, 3, 1.82, 9909ull); dcbFreeCallback(cb); + printf("successfully returned from callback\n"); printf("return value (should be 1234): %d\n", result);