summaryrefslogtreecommitdiffhomepage
path: root/ir/be/mips
diff options
context:
space:
mode:
authorChristoph Mallon <christoph.mallon@gmx.de>2017-01-16 09:06:56 +0100
committerChristoph Mallon <christoph.mallon@gmx.de>2017-01-16 09:06:56 +0100
commit72cfb0190064805d3a797f32d13aa5e6472be40c (patch)
tree3e09366337415b2fc29722b12e043568568b0f86 /ir/be/mips
parentf1f23d72c545b89fa4ebe9b3032499ac7af741b9 (diff)
mips: Handle compound return values.
Diffstat (limited to 'ir/be/mips')
-rw-r--r--ir/be/mips/mips_bearch.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ir/be/mips/mips_bearch.c b/ir/be/mips/mips_bearch.c
index d1c7009..b124589 100644
--- a/ir/be/mips/mips_bearch.c
+++ b/ir/be/mips/mips_bearch.c
@@ -17,6 +17,7 @@
#include "iredges.h"
#include "irgwalk.h"
#include "irprog_t.h"
+#include "lower_calls.h"
#include "lowering.h"
#include "mips_bearch_t.h"
#include "mips_emitter.h"
@@ -271,6 +272,9 @@ static void mips_generate_code(FILE *const output, char const *const cup_name)
static void mips_lower_for_target(void)
{
+ lower_calls_with_compounds(LF_RETURN_HIDDEN | LF_DONT_LOWER_ARGUMENTS, NULL);
+ be_after_irp_transform("lower-calls");
+
foreach_irp_irg(i, irg) {
lower_CopyB(irg, 16, 17, false);
be_after_transform(irg, "lower-copyb");