diff options
| author | Cliff Click <cliffc@acm.org> | 2025-04-09 17:12:56 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2025-04-09 17:12:56 -0700 |
| commit | 074f718a104dbbb8b1b0a2205c176659a27dfd9f (patch) | |
| tree | 33168e69e4cf1cf72e17f722eb76b1eb2201fa9d /chapter21/src/test/java/com | |
| parent | b32c6a879c0be7aebad25fabae6f0a24d5670366 (diff) | |
| download | Simple-074f718a104dbbb8b1b0a2205c176659a27dfd9f.tar.gz Simple-074f718a104dbbb8b1b0a2205c176659a27dfd9f.zip | |
Handle large arg count function
2 print modes for stack slots - slot# or stack offset, only available after encoding.
Compute maxArgSlot in one place on all archs.
X86 yank flags from Splits - lest we split a XMM into the flags???
Diffstat (limited to 'chapter21/src/test/java/com')
4 files changed, 12 insertions, 15 deletions
diff --git a/chapter21/src/test/java/com/seaofnodes/simple/Chapter21Test.java b/chapter21/src/test/java/com/seaofnodes/simple/Chapter21Test.java index a5316d62..631862e9 100644 --- a/chapter21/src/test/java/com/seaofnodes/simple/Chapter21Test.java +++ b/chapter21/src/test/java/com/seaofnodes/simple/Chapter21Test.java @@ -140,9 +140,8 @@ public class Chapter21Test { assertEquals(60+0,R5.ld8(p2)); } - @Ignore @Test public void testArgCount() throws IOException { - String arg_count = ""; + String arg_count = "153.900000\n"; TestC.run("arg_count", arg_count); } } diff --git a/chapter21/src/test/java/com/seaofnodes/simple/progs/arg_count.c b/chapter21/src/test/java/com/seaofnodes/simple/progs/arg_count.c index 60637b1e..f0cae2b8 100644 --- a/chapter21/src/test/java/com/seaofnodes/simple/progs/arg_count.c +++ b/chapter21/src/test/java/com/seaofnodes/simple/progs/arg_count.c @@ -1,11 +1,9 @@ #include <stdio.h> -#include <stdbool.h> -#include <stdlib.h> -extern int test(); +extern double addAll( long long i0, double f1, long long i2, double f3, long long i4, double f5, long long i6, double f7, long long i8, double f9, long long i10, double f11, long long i12, double f13, long long i14, double f15, long long i16, double f17 ); int main() { - int result = test(); - printf("d\n", result); -return 0; -}
\ No newline at end of file + double result = addAll( 0, 1.1, 2, 3.1, 4, 5.1, 6, 7.1, 8, 9.1, 10, 11.1, 12, 13.1, 14, 15.1, 16, 17.1 ); + printf("%f\n", result); + return 0; +} diff --git a/chapter21/src/test/java/com/seaofnodes/simple/progs/arg_count.smp b/chapter21/src/test/java/com/seaofnodes/simple/progs/arg_count.smp index 58dbffba..102ead99 100644 --- a/chapter21/src/test/java/com/seaofnodes/simple/progs/arg_count.smp +++ b/chapter21/src/test/java/com/seaofnodes/simple/progs/arg_count.smp @@ -1,7 +1,6 @@ -val addAll = { int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, int n, int o -> - return a+b+c+d+e+f+g+h+i+j+k+l+m+n+o; +// -*- mode: java; -*- +val addAll = { int i0, flt f1, int i2, flt f3, int i4, flt f5, int i6, flt f7, int x8, flt f9, int i10, flt f11, int i12, flt f13, int i14, flt f15, int x16, flt f17 -> + return + i0 + f1+ i2+ f3+ i4+ f5+ i6+ f7+ x8 +f9 + + i10+f11+i12+f13+i14+f15+x16+f17; }; - -val test = { -> - return addAll(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) + addAll(16,17,18,19,20,21,22,23,24,25,26,27,28,29,30); -};
\ No newline at end of file diff --git a/chapter21/src/test/java/com/seaofnodes/simple/progs/brain_fuck.smp b/chapter21/src/test/java/com/seaofnodes/simple/progs/brain_fuck.smp index 69e63ba3..d91eb24f 100644 --- a/chapter21/src/test/java/com/seaofnodes/simple/progs/brain_fuck.smp +++ b/chapter21/src/test/java/com/seaofnodes/simple/progs/brain_fuck.smp @@ -1,3 +1,4 @@ +// -*- mode: java; -*- val brain_fuck = { -> u8[] !program = new u8[106];program[0] = 43;program[1] = 43;program[2] = 43;program[3] = 43;program[4] = 43;program[5] = 43;program[6] = 43;program[7] = 43;program[8] = 91;program[9] = 62;program[10] = 43;program[11] = 43;program[12] = 43;program[13] = 43;program[14] = 91;program[15] = 62;program[16] = 43;program[17] = 43;program[18] = 62;program[19] = 43;program[20] = 43;program[21] = 43;program[22] = 62;program[23] = 43;program[24] = 43;program[25] = 43;program[26] = 62;program[27] = 43;program[28] = 60;program[29] = 60;program[30] = 60;program[31] = 60;program[32] = 45;program[33] = 93;program[34] = 62;program[35] = 43;program[36] = 62;program[37] = 43;program[38] = 62;program[39] = 45;program[40] = 62;program[41] = 62;program[42] = 43;program[43] = 91;program[44] = 60;program[45] = 93;program[46] = 60;program[47] = 45;program[48] = 93;program[49] = 62;program[50] = 62;program[51] = 46;program[52] = 62;program[53] = 45;program[54] = 45;program[55] = 45;program[56] = 46;program[57] = 43;program[58] = 43;program[59] = 43;program[60] = 43;program[61] = 43;program[62] = 43;program[63] = 43;program[64] = 46;program[65] = 46;program[66] = 43;program[67] = 43;program[68] = 43;program[69] = 46;program[70] = 62;program[71] = 62;program[72] = 46;program[73] = 60;program[74] = 45;program[75] = 46;program[76] = 60;program[77] = 46;program[78] = 43;program[79] = 43;program[80] = 43;program[81] = 46;program[82] = 45;program[83] = 45;program[84] = 45;program[85] = 45;program[86] = 45;program[87] = 45;program[88] = 46;program[89] = 45;program[90] = 45;program[91] = 45;program[92] = 45;program[93] = 45;program[94] = 45;program[95] = 45;program[96] = 45;program[97] = 46;program[98] = 62;program[99] = 62;program[100] = 43;program[101] = 46;program[102] = 62;program[103] = 43;program[104] = 43;program[105] = 46; int d = 0; |
