Mercurial > pub > dyncall > dyncall
diff test/hacking-mips/calls.c @ 0:3e629dc19168
initial from svn dyncall-1745
author | Daniel Adler |
---|---|
date | Thu, 19 Mar 2015 22:24:28 +0100 |
parents | |
children | f5577f6bf97a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hacking-mips/calls.c Thu Mar 19 22:24:28 2015 +0100 @@ -0,0 +1,54 @@ +/* + + Package: dyncall + Library: test + File: test/hacking-mips/calls.c + Description: + License: + + Copyright (c) 2011-2015 Daniel Adler <dadler@uni-goettingen.de>, + Tassilo Philipp <tphilipp@potion-studios.com> + + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +*/ + +typedef int i; +typedef float f; +typedef double d; +void _(); +void _iiiiiiiiii(i,i,i,i,i,i,i,i,i,i); +void _ffffffffff(f,f,f,f,f,f,f,f,f,f); +void _dddddddddd(d,d,d,d,d,d,d,d,d,d); +void _ifffffffff(i,f,f,f,f,f,f,f,f,f); +void _iddddddddd(i,d,d,d,d,d,d,d,d,d); +void _fdidfd(f,d,i,d,f,d); +void _ddidfd(d,d,i,d,f,d); +void _ididfd(i,d,i,d,f,d); +int ai[] = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 }; +float af[] = { 0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f }; +double ad[] = { 0.0 , 1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 , 7.0 , 8.0 , 9.0 }; + +void call_() { _(); } +void call_iiiiiiiiii() { _iiiiiiiiii(ai[0],ai[1],ai[2],ai[3],ai[4],ai[5],ai[6],ai[7],ai[8],ai[9]); } +void call_ffffffffff() { _ffffffffff(af[0],af[1],af[2],af[3],af[4],af[5],af[6],af[7],af[8],af[9]); } +void call_dddddddddd() { _dddddddddd(ad[0],ad[1],ad[2],ad[3],ad[4],ad[5],ad[6],ad[7],ad[8],ad[9]); } +void call_ifffffffff() { _ifffffffff(ai[0],af[1],af[2],af[3],af[4],af[5],af[6],af[7],af[8],af[9]); } +void call_iddddddddd() { _iddddddddd(ai[0],ad[1],ad[2],ad[3],ad[4],ad[5],ad[6],ad[7],ad[8],ad[9]); } + +void call_fififififi() { _fififififi(af[0],ai[1],af[2],ai[3],af[4],ai[5],af[6],ai[7],af[8],ai[9]); } + +void call_fdidfd() { _fdidfd(1.0f,2.0, 3 ,4.0, 5.0f,6.0 ); } +void call_ddidfd() { _ddidfd(1.0, 2.0, 3 ,4.0, 5.0f,6.0 ); } +void call_ididfd() { _ididfd(1 , 2.0, 3 ,4.0, 5.0f,6.0 ); } +