ocaml/asmcomp/amd64
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 Improve code-generation for 32-to-64-bit zero-extension on amd64. 2019-10-14 10:45:15 +01:00
NOTES.md clean up whitespace and cut long lines 2016-02-17 13:36:27 +01:00
arch.ml Improve code-generation for 32-to-64-bit zero-extension on amd64. 2019-10-14 10:45:15 +01:00
emit.mlp x86 asm: handle unit names with special characters (#9465) 2020-04-19 11:17:00 +02: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 warning 60: enable on local modules 2019-08-28 13:24:10 +01:00
selection.ml Revised passing of arguments to external C functions 2020-07-24 17:39:22 +02:00