summaryrefslogtreecommitdiffhomepage
path: root/ir/be/mips
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/mips
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/mips')
-rw-r--r--ir/be/mips/mips_bearch.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ir/be/mips/mips_bearch.c b/ir/be/mips/mips_bearch.c
index d4f4c67..c33793d 100644
--- a/ir/be/mips/mips_bearch.c
+++ b/ir/be/mips/mips_bearch.c
@@ -266,7 +266,10 @@ static void mips_lower_for_target(void)
ir_arch_lower(&mips_arch_dep);
be_after_irp_transform("lower-arch-dep");
- lower_calls_with_compounds(LF_RETURN_HIDDEN | LF_DONT_LOWER_ARGUMENTS, NULL);
+ lower_calls_with_compounds(LF_RETURN_HIDDEN,
+ dont_lower_aggregates, NULL,
+ lower_aggregates_as_pointers, NULL,
+ reset_stateless_abi);
be_after_irp_transform("lower-calls");
foreach_irp_irg(i, irg) {