Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More parameter passing registers for Power and Z systems #10578

Merged
merged 3 commits into from
Aug 28, 2021
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 4 additions & 4 deletions asmcomp/power/proc.ml
Original file line number Diff line number Diff line change
Expand Up @@ -155,17 +155,17 @@ let incoming ofs = Incoming ofs
let outgoing ofs = Outgoing ofs
let not_supported _ofs = fatal_error "Proc.loc_results: cannot call"

let max_arguments_for_tailcalls = 8
let max_arguments_for_tailcalls = 16

let loc_arguments arg =
calling_conventions 0 7 100 112 outgoing arg
calling_conventions 0 15 100 112 outgoing arg

let loc_parameters arg =
let (loc, _ofs) = calling_conventions 0 7 100 112 incoming arg
let (loc, _ofs) = calling_conventions 0 15 100 112 incoming arg
in loc

let loc_results res =
let (loc, _ofs) = calling_conventions 0 7 100 112 not_supported res
let (loc, _ofs) = calling_conventions 0 15 100 112 not_supported res
in loc

(* C calling conventions for ELF32:
Expand Down
8 changes: 4 additions & 4 deletions asmcomp/s390x/proc.ml
Original file line number Diff line number Diff line change
Expand Up @@ -128,14 +128,14 @@ let incoming ofs = Incoming ofs
let outgoing ofs = Outgoing ofs
let not_supported _ofs = fatal_error "Proc.loc_results: cannot call"

let max_arguments_for_tailcalls = 5
let max_arguments_for_tailcalls = 8

let loc_arguments arg =
calling_conventions 0 4 100 103 outgoing 0 arg
calling_conventions 0 7 100 103 outgoing 0 arg
let loc_parameters arg =
let (loc, _ofs) = calling_conventions 0 4 100 103 incoming 0 arg in loc
let (loc, _ofs) = calling_conventions 0 7 100 103 incoming 0 arg in loc
let loc_results res =
let (loc, _ofs) = calling_conventions 0 4 100 103 not_supported 0 res in loc
let (loc, _ofs) = calling_conventions 0 7 100 103 not_supported 0 res in loc

(* C calling conventions under SVR4:
use GPR 2-6 and FPR 0,2,4,6 just like ML calling conventions.
Expand Down