aboutsummaryrefslogtreecommitdiffstats
path: root/test/regression/Results
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2015-03-20 11:25:30 +0100
committerXavier Leroy <xavier.leroy@inria.fr>2015-03-20 11:25:30 +0100
commitcbf8434e44ebd6bc05022d1fbe0400267520184f (patch)
treea73d9d6d0601935cf514698cdc393d131df7a341 /test/regression/Results
parent42e397bd80389c7e7259f962415769b06561bb5d (diff)
downloadcompcert-cbf8434e44ebd6bc05022d1fbe0400267520184f.tar.gz
compcert-cbf8434e44ebd6bc05022d1fbe0400267520184f.zip
Improvements in the StructReturn transformation (ABI conformance for passing composites).
- Implement the "1/2/4/8" composite return policy, used by IA32/MacOS X and IA32/BSD. - Move the default passing conventions from Machine.ml to compcert.ini, making it easier to test the various conventions. - More comprehensive interoperability test in regression/interop1.c.
Diffstat (limited to 'test/regression/Results')
-rw-r--r--test/regression/Results/interop1148
1 files changed, 86 insertions, 62 deletions
diff --git a/test/regression/Results/interop1 b/test/regression/Results/interop1
index bac9aaab..990dfe9d 100644
--- a/test/regression/Results/interop1
+++ b/test/regression/Results/interop1
@@ -1,66 +1,90 @@
--- CompCert calling native:
-s1 = { a = 'a' }
-s2 = { a = 'x', b = 'y' }
-s3 = { a = 'a', b = 'b', c = ' c' }
-s4 = { a = 'p', b = 'q', c = ' r', d = 's' }
-s5 = { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e' }
-s6 = { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f' }
-s7 = { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f', g = 'g' }
-s8 = "Hello, world!"
-t1 = { a = 12 }
-t2 = { a = 34, b = 56 }
-t3 = { a = -1, b = -2, c = -3 }
-t4 = { a = 11, b = 22, c = 33, d = 44 }
-t4 = { a = 1, b = 2, c = 3, d = 4, e = 'x' }
-u1 = { a = 12345678 }
-u2 = { a = 1, b = -1 }
-u3 = { a = -1, b = -2, c = -3 }
-u4 = { a = 4, b = 3, c = 2, d = 1 }
-u5 = { a = 123, b = 'z' }
-u6 = { a = -12345678, b = 555 }
-u7 = { a = 111111111, b = 2222, c = 'a' }
-u8 = { a = 'u', b = 8 }
-u9 = { a = { 9, 8, 7, 6 } }
+s1: { a = 'a' }
+s2: { a = 'a', b = 'b' }
+s3: { a = 'a', b = 'b', c = ' c' }
+s4: { a = 'a', b = 'b', c = ' c', d = 'd' }
+s5: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e' }
+s6: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f' }
+s7: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f', g = 'g' }
+s8: "Hello world!"
+t1: { a = 123 }
+t2: { a = 123, b = 456 }
+t3: { a = 123, b = 456, c = 789 }
+t4: { a = 123, b = 456, c = 789, d = -111 }
+t5: { a = 123, b = 456, c = 789, d = -999, e = 'x' }
+u1: { a = 12 }
+u2: { a = 12, b = -34 }
+u3: { a = 12, b = 34, c = -56 }
+u4: { a = 12, b = 34, c = 56, d = -78 }
+u5: { a = 1234, b = 'u' }
+u6: { a = 55555, b = 666 }
+u7: { a = -10001, b = -789, c = 'z' }
+u8: { a = 'x', b = 12345 }
after ms4, x = { 's', 'a', 'm', 'e' }
-after mu9, x = { a = { 11, 22, 33, 44 } }
-rs1 = { a = 'a' }
-rs2 = { a = 'a', b = 'b' }
-rs3 = { a = 'a', b = 'b', c = 'c' }
-rs4 = { a = 'a', b = 'b', c = 'c', d = 'd' }
-rs8 = { "Lorem ipsum" }
-ru2 = { a = 12, b = -34 }
-ru6 = { a = 12345678, b = -9999 }
-ru9 = { a = { 111, 222, 333, 444 } }
+after mu4, x = { a = { 11, 22, 33, 44 } }
+rs1: { a = 'a' }
+rs2: { a = 'a', b = 'b' }
+rs3: { a = 'a', b = 'b', c = ' c' }
+rs4: { a = 'a', b = 'b', c = ' c', d = 'd' }
+rs5: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e' }
+rs6: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f' }
+rs7: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f', g = 'g' }
+rs8: "Hello world!"
+rt1: { a = 123 }
+rt2: { a = 123, b = 456 }
+rt3: { a = 123, b = 456, c = 789 }
+rt4: { a = 123, b = 456, c = 789, d = -111 }
+rt5: { a = 123, b = 456, c = 789, d = -999, e = 'x' }
+ru1: { a = 12 }
+ru2: { a = 12, b = -34 }
+ru3: { a = 12, b = 34, c = -56 }
+ru4: { a = 12, b = 34, c = 56, d = -78 }
+ru5: { a = 1234, b = 'u' }
+ru6: { a = 55555, b = 666 }
+ru7: { a = -10001, b = -789, c = 'z' }
+ru8: { a = 'x', b = 12345 }
--- native calling CompCert:
-s1 = { a = 'a' }
-s2 = { a = 'x', b = 'y' }
-s3 = { a = 'a', b = 'b', c = ' c' }
-s4 = { a = 'p', b = 'q', c = ' r', d = 's' }
-s5 = { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e' }
-s6 = { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f' }
-s7 = { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f', g = 'g' }
-s8 = "Hello, world!"
-t1 = { a = 12 }
-t2 = { a = 34, b = 56 }
-t3 = { a = -1, b = -2, c = -3 }
-t4 = { a = 11, b = 22, c = 33, d = 44 }
-t4 = { a = 1, b = 2, c = 3, d = 4, e = 'x' }
-u1 = { a = 12345678 }
-u2 = { a = 1, b = -1 }
-u3 = { a = -1, b = -2, c = -3 }
-u4 = { a = 4, b = 3, c = 2, d = 1 }
-u5 = { a = 123, b = 'z' }
-u6 = { a = -12345678, b = 555 }
-u7 = { a = 111111111, b = 2222, c = 'a' }
-u8 = { a = 'u', b = 8 }
-u9 = { a = { 9, 8, 7, 6 } }
+s1: { a = 'a' }
+s2: { a = 'a', b = 'b' }
+s3: { a = 'a', b = 'b', c = ' c' }
+s4: { a = 'a', b = 'b', c = ' c', d = 'd' }
+s5: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e' }
+s6: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f' }
+s7: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f', g = 'g' }
+s8: "Hello world!"
+t1: { a = 123 }
+t2: { a = 123, b = 456 }
+t3: { a = 123, b = 456, c = 789 }
+t4: { a = 123, b = 456, c = 789, d = -111 }
+t5: { a = 123, b = 456, c = 789, d = -999, e = 'x' }
+u1: { a = 12 }
+u2: { a = 12, b = -34 }
+u3: { a = 12, b = 34, c = -56 }
+u4: { a = 12, b = 34, c = 56, d = -78 }
+u5: { a = 1234, b = 'u' }
+u6: { a = 55555, b = 666 }
+u7: { a = -10001, b = -789, c = 'z' }
+u8: { a = 'x', b = 12345 }
after ms4, x = { 's', 'a', 'm', 'e' }
-after mu9, x = { a = { 11, 22, 33, 44 } }
-rs1 = { a = 'a' }
-rs2 = { a = 'a', b = 'b' }
-rs3 = { a = 'a', b = 'b', c = 'c' }
-rs4 = { a = 'a', b = 'b', c = 'c', d = 'd' }
-rs8 = { "Lorem ipsum" }
-ru2 = { a = 12, b = -34 }
-ru6 = { a = 12345678, b = -9999 }
-ru9 = { a = { 111, 222, 333, 444 } }
+after mu4, x = { a = { 11, 22, 33, 44 } }
+rs1: { a = 'a' }
+rs2: { a = 'a', b = 'b' }
+rs3: { a = 'a', b = 'b', c = ' c' }
+rs4: { a = 'a', b = 'b', c = ' c', d = 'd' }
+rs5: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e' }
+rs6: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f' }
+rs7: { a = 'a', b = 'b', c = ' c', d = 'd', e = 'e', f = 'f', g = 'g' }
+rs8: "Hello world!"
+rt1: { a = 123 }
+rt2: { a = 123, b = 456 }
+rt3: { a = 123, b = 456, c = 789 }
+rt4: { a = 123, b = 456, c = 789, d = -111 }
+rt5: { a = 123, b = 456, c = 789, d = -999, e = 'x' }
+ru1: { a = 12 }
+ru2: { a = 12, b = -34 }
+ru3: { a = 12, b = 34, c = -56 }
+ru4: { a = 12, b = 34, c = 56, d = -78 }
+ru5: { a = 1234, b = 'u' }
+ru6: { a = 55555, b = 666 }
+ru7: { a = -10001, b = -789, c = 'z' }
+ru8: { a = 'x', b = 12345 }