aboutsummaryrefslogtreecommitdiff
path: root/tests/sysy_lvX/096_many_param_call.sy
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sysy_lvX/096_many_param_call.sy')
-rw-r--r--tests/sysy_lvX/096_many_param_call.sy112
1 files changed, 112 insertions, 0 deletions
diff --git a/tests/sysy_lvX/096_many_param_call.sy b/tests/sysy_lvX/096_many_param_call.sy
new file mode 100644
index 0000000..65c571f
--- /dev/null
+++ b/tests/sysy_lvX/096_many_param_call.sy
@@ -0,0 +1,112 @@
+// Call a func with many params.
+
+int testParam8(int a0, int a1, int a2, int a3,
+ int a4, int a5, int a6, int a7) {
+ return a0 - a1 + a2 - a3 - a4 - a5 + a6 + a7;
+}
+
+int testParam16(int a0, int a1, int a2, int a3,
+ int a4, int a5, int a6, int a7,
+ int a8, int a9, int a10, int a11,
+ int a12, int a13, int a14, int a15) {
+ return a0 + a1 + a2 + a3 - a4 + a5 + a6 + a7 -
+ a8 + a9 - a10 + a11 + a12 + a13 + a14 + a15;
+}
+
+int testParam32(int a0, int a1, int a2, int a3,
+ int a4, int a5, int a6, int a7,
+ int a8, int a9, int a10, int a11,
+ int a12, int a13, int a14, int a15,
+ int a16, int a17, int a18, int a19,
+ int a20, int a21, int a22, int a23,
+ int a24, int a25, int a26, int a27,
+ int a28, int a29, int a30, int a31) {
+ return a0 + a1 * a2 + a3 + a4 + a5 + a6 + a7 +
+ a8 + a9 + a10 + a11 - a12 - a13 - a14 - a15 -
+ a16 - a17 - a18 - a19 - a20 - a21 + a22 + a23 +
+ a24 + a25 + a26 + a27 + a28 + a29 + a30 + a31;
+}
+
+int main() {
+ int a0;
+ int a1;
+ int a2;
+ int a3;
+ int a4;
+ int a5;
+ int a6;
+ int a7;
+ int a8;
+ int a9;
+ int a10;
+ int a11;
+ int a12;
+ int a13;
+ int a14;
+ int a15;
+ int a16;
+ int a17;
+ int a18;
+ int a19;
+ int a20;
+ int a21;
+ int a22;
+ int a23;
+ int a24;
+ int a25;
+ int a26;
+ int a27;
+ int a28;
+ int a29;
+ int a30;
+ int a31;
+ a0 = 0;
+ a1 = 1;
+ a2 = 2;
+ a3 = 3;
+ a4 = 4;
+ a5 = 5;
+ a6 = 6;
+ a7 = 7;
+ a8 = 8;
+ a9 = 9;
+ a10 = 0;
+ a11 = 1;
+ a12 = 2;
+ a13 = 3;
+ a14 = 4;
+ a15 = 5;
+ a16 = 6;
+ a17 = 7;
+ a18 = 8;
+ a19 = 9;
+ a20 = 0;
+ a21 = 1;
+ a22 = 2;
+ a23 = 3;
+ a24 = 4;
+ a25 = 5;
+ a26 = 6;
+ a27 = 7;
+ a28 = 8;
+ a29 = 9;
+ a30 = 0;
+ a31 = 1;
+ a0 = testParam8(a0, a1, a2, a3, a4, a5, a6, a7);
+ putint(a0);
+ a0 = testParam16(a0, a1, a2, a3,
+ a4, a5, a6, a7,
+ a8, a9, a10, a11,
+ a12, a13, a14, a15);
+ putint(a0);
+ a0 = testParam32(a0, a1, a2, a3,
+ a4, a5, a6, a7,
+ a8, a9, a10, a11,
+ a12, a13, a14, a15,
+ a16, a17, a18, a19,
+ a20, a21, a22, a23,
+ a24, a25, a26, a27,
+ a28, a29, a30, a31);
+ putint(a0);
+ return 0;
+}