diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2015-03-20 11:25:30 +0100 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2015-03-20 11:25:30 +0100 |
commit | cbf8434e44ebd6bc05022d1fbe0400267520184f (patch) | |
tree | a73d9d6d0601935cf514698cdc393d131df7a341 /driver/Interp.ml | |
parent | 42e397bd80389c7e7259f962415769b06561bb5d (diff) | |
download | compcert-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 'driver/Interp.ml')
-rw-r--r-- | driver/Interp.ml | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/driver/Interp.ml b/driver/Interp.ml index 3ad0df8a..2725dbfe 100644 --- a/driver/Interp.ml +++ b/driver/Interp.ml @@ -366,7 +366,6 @@ let do_printf m fmt args = let (>>=) opt f = match opt with None -> None | Some arg -> f arg -(* (* Like eventval_of_val, but accepts static globals as well *) let convert_external_arg ge v t = @@ -386,7 +385,6 @@ let rec convert_external_args ge vl tl = convert_external_arg ge v1 t1 >>= fun e1 -> convert_external_args ge vl tl >>= fun el -> Some (e1 :: el) | _, _ -> None -*) let do_external_function id sg ge w args m = match extern_atom id, args with @@ -394,12 +392,8 @@ let do_external_function id sg ge w args m = extract_string m b ofs >>= fun fmt -> print_string (do_printf m fmt args'); flush stdout; - Some(((w, [Event_syscall(id, [], EVint Int.zero)]), Vint Int.zero), m) -(* convert_external_args ge args sg.sig_args >>= fun eargs -> Some(((w, [Event_syscall(id, eargs, EVint Int.zero)]), Vint Int.zero), m) -*) - | _ -> None |