aboutsummaryrefslogtreecommitdiffstats
path: root/cparser/Machine.ml
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2015-03-14 10:31:02 +0100
committerXavier Leroy <xavier.leroy@inria.fr>2015-03-14 10:31:02 +0100
commit67e8b783c7e794d995675a332f118533e6a9b14a (patch)
treed9e86638612cacd929580f280e71a070f1f71a00 /cparser/Machine.ml
parent6f3ac9e1cef476ef0c5eaf7875af24543f66128a (diff)
downloadcompcert-kvx-67e8b783c7e794d995675a332f118533e6a9b14a.tar.gz
compcert-kvx-67e8b783c7e794d995675a332f118533e6a9b14a.zip
Improve performance and configurability for the StructReturn pass.
configure: special ABI value for IA32/MacOSX and PowerPC/Linux cparser/Machine: special config for PowerPC/Linux cparser/StructReturn: generate better code for return-as-int driver/Clflags, driver/Driver: add options -fstruct-return=<convention> and -fstruct-passing=<convention> to simplify testing
Diffstat (limited to 'cparser/Machine.ml')
-rw-r--r--cparser/Machine.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/cparser/Machine.ml b/cparser/Machine.ml
index 4f530fde..e1f9998f 100644
--- a/cparser/Machine.ml
+++ b/cparser/Machine.ml
@@ -187,6 +187,9 @@ let ppc_32_bigendian =
struct_return_as_int = 8;
struct_passing_style = SP_ref_caller }
+let ppc_32_bigendian_linux =
+ { ppc_32_bigendian with struct_return_as_int = 0 }
+
let arm_littleendian =
{ ilp32ll64 with name = "arm";
struct_return_as_int = 4;