summaryrefslogtreecommitdiffhomepage
path: root/ir/be/TEMPLATE
diff options
context:
space:
mode:
authorAndreas Fried <andreas.fried@kit.edu>2017-01-19 10:10:29 +0100
committerSebastian Buchwald <Sebastian.Buchwald@kit.edu>2017-12-13 17:59:20 +0100
commit2ecf7fb931c9d28d403da1f932121126caa253ed (patch)
tree707658d9ccf7e1b8b6e83418fd484e05682c3abc /ir/be/TEMPLATE
parent3a64ffc2f7f9f3c64d14b5342968e86ad23bb2f8 (diff)
Implement a new, callback-based, lowering for calls with compounds.
The difference between ABIs is so large that we cannot distingush between them with flags. Basically, we would have to implement all ABIs in lower_calls.c. Instead, we let the backends specify how parameter and result types are to be lowered. For now, all backends except IA-32 use a dummy ABI, which is the old Firm default, i.e. the SPARC ABI.
Diffstat (limited to 'ir/be/TEMPLATE')
-rw-r--r--ir/be/TEMPLATE/TEMPLATE_bearch.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ir/be/TEMPLATE/TEMPLATE_bearch.c b/ir/be/TEMPLATE/TEMPLATE_bearch.c
index 8d9067f..74aef25 100644
--- a/ir/be/TEMPLATE/TEMPLATE_bearch.c
+++ b/ir/be/TEMPLATE/TEMPLATE_bearch.c
@@ -127,7 +127,10 @@ static void TEMPLATE_lower_for_target(void)
be_after_irp_transform("lower-builtins");
/* lower compound param handling */
- lower_calls_with_compounds(LF_RETURN_HIDDEN, NULL);
+ lower_calls_with_compounds(LF_RETURN_HIDDEN,
+ lower_aggregates_as_pointers, NULL,
+ lower_aggregates_as_pointers, NULL,
+ reset_stateless_abi);
be_after_irp_transform("lower-calls");
}