From: Guillermo J. Rozas Date: Fri, 14 Feb 1992 01:50:05 +0000 (+0000) Subject: Initial revision X-Git-Tag: 20090517-FFI~9749 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=666d6e29410ef96c60cb0396c0946003db56983a;p=mit-scheme.git Initial revision --- diff --git a/v7/src/compiler/documentation/test-c.c b/v7/src/compiler/documentation/test-c.c new file mode 100644 index 000000000..be1a663b9 --- /dev/null +++ b/v7/src/compiler/documentation/test-c.c @@ -0,0 +1,76 @@ +/* -*- C -*- */ + +/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/documentation/test-c.c,v 1.1 1992/02/14 01:50:05 jinx Exp $ */ + +#include + +struct two_word_struct +{ + long foo; + long bar; +}; + +struct two_word_struct +reveal_structure_convention (x, y) + long x; + long y; +{ + struct two_word_struct result; + + result.foo = (x + y); + result.bar = (x - y); + return (result); +} + +long +reveal_register_partition + (x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, + y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, + z0, z1, z2, z3, z4, z5, z6, z7, z8, z9, + q0, q1) +long + x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, + y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, + z0, z1, z2, z3, z4, z5, z6, z7, z8, z9, + q0, q1; +{ + return ( (x0 * y0) + (x1 * y1) + (x2 * y2) + (x3 * y3) + (x4 * y4) + + (x5 * y5) + (x6 * y6) + (x7 * y7) + (x8 * y8) + (x9 * y9) + + (y0 * z0) + (y1 * z1) + (y2 * z2) + (y3 * z3) + (y4 * z4) + + (y5 * z5) + (y6 * z6) + (y7 * z7) + (y8 * z8) + (y9 * z9) + + (z0 * q0) + (z1 * q1) + (z2 * x2) + (z3 * x3) + (z4 * x4) + + (z5 * x5) + (z6 * x6) + (z7 * x7) + (z8 * x8) + (z9 * x9) + + (q0 * x0) + (q1 * x1)); +} + +main (argc, argv) + int argc; + char **argv; +{ + extern int atoi (); + long values[33]; + int count; + struct two_word_struct temp; + + if (argc != 33) + { + fprintf (stderr, "usage: Don't run this program!\n"); + exit (1); + } + for (count = 1; count < argc; count++) + values[count] = ((long) (atoi (argv[count]))); + + printf ("result = %ld", + (reveal_register_partition + (values[ 1], values[ 2], values[ 3], values[ 4], values[ 5], + values[ 6], values[ 7], values[ 8], values[ 9], values[10], + values[11], values[12], values[13], values[14], values[15], + values[16], values[17], values[18], values[19], values[20], + values[21], values[22], values[23], values[24], values[25], + values[26], values[27], values[28], values[29], values[30], + values[31], values[32]))); + + temp = (reveal_structure_convention (values[31], values[32])); + printf ("temp = {foo = %ld, bar = %ld}\n", temp.foo, temp.bar); + exit (0); +}