ocaml/asmcomp/arm
Xavier Leroy 9fcb295b98 Revised passing of arguments to external C functions
Introduce the type Cmm.exttype to precisely describe arguments to
external C functions, especially unboxed numerical arguments.

Annotate Cmm.Cextcall with the types of the arguments (Cmm.exttype list).
An empty list means "all arguments have default type XInt".

Annotate Mach.Iextcall with the type of the result (Cmm.machtype)
and the types of the arguments (Cmm.exttype list).

Change (slightly) the API for describing calling conventions in Proc:
- loc_external_arguments now takes a Cmm.exttype list,
  in order to know more precisely the types of the arguments.
- loc_arguments, loc_parameters, loc_results, loc_external_results
  now take a Cmm.machype instead of an array of pseudoregisters.
  (Only the types of the pseudoregisters mattered anyway.)

Update the implementations of module Proc accordingly, in every port.

Introduce a new overridable method in Selectgen, insert_move_extcall_arg,
to produce the code that moves an argument of an external C function
to the locations returned by Proc.loc_external_arguments.

Revise the selection of external calls accordingly
(method emit_extcall_args in Selectgen).
2020-07-24 17:39:22 +02:00
..
CSE.ml Spacetime: a new memory profiler (#585) 2016-07-29 15:07:10 +01:00
NOTES.md clean up whitespace and cut long lines 2016-02-17 13:36:27 +01:00
arch.ml ARM 32-bit port: add support for ARMv8 in 32-bit mode, a.k.a. AArch32 (#1486) 2017-12-28 19:21:50 +01:00
emit.mlp Per-architecture support for allocation size info in frame tables. 2019-10-23 09:24:13 +01:00
proc.ml Revised passing of arguments to external C functions 2020-07-24 17:39:22 +02:00
reload.ml Pass num_stack_slots as argument 2019-09-11 18:48:20 +01:00
scheduling.ml Labels after calls, call GC points and checkbound points (again) (#660) 2016-07-06 11:44:00 +01:00
selection.ml Revised passing of arguments to external C functions 2020-07-24 17:39:22 +02:00