path: root/ir/be/mips
diff options
authorChristoph Mallon <>2018-04-08 10:38:49 +0200
committerChristoph Mallon <>2018-04-08 11:34:57 +0200
commitbb07fd0ff959958c5feef24d37c3abff69115945 (patch)
tree37e9b6fc6ef59eba0a9cf324dd1f15a4fe0f3d39 /ir/be/mips
parent8cf5a52f4d406b5f852dc2d1ab16f8abae1f921e (diff)
lower: Handle creation of the libgcc entities directly in the double word lowerer.
Before each backend specified the same names (or a subset thereof) by itself. Now also backends without explicit handling for several double word operations just use the libgcc functions. This re-uses the implementation of the SPARC backend, because it handled a superset of all others. Additionally the arm backend did not mangle the name. This was not critical because typical arm systems have no mangling.
Diffstat (limited to 'ir/be/mips')
1 files changed, 1 insertions, 8 deletions
diff --git a/ir/be/mips/mips_lower64.c b/ir/be/mips/mips_lower64.c
index 2d048d2..6684b7e 100644
--- a/ir/be/mips/mips_lower64.c
+++ b/ir/be/mips/mips_lower64.c
@@ -7,12 +7,6 @@
#include "gen_mips_regalloc_if.h"
#include "lower_dw.h"
-static ir_entity *mips_create_64_intrinsic_fkt(ir_type *const method, ir_op const *const op, ir_mode const *const imode, ir_mode const *const omode, void *const context)
- (void)method, (void)op, (void)imode, (void)omode, (void)context;
- panic("TODO");
static void mips_lower_add64(ir_node *const node, ir_mode *const mode)
dbg_info *const dbg = get_irn_dbg_info(node);
@@ -61,8 +55,7 @@ void mips_lower64(void)
ir_mode *const word_unsigned = mips_reg_classes[CLASS_mips_gp].mode;
ir_mode *const word_signed = find_signed_mode(word_unsigned);
- lwrdw_param_t lower_dw_params = {
- .create_intrinsic = &mips_create_64_intrinsic_fkt,
+ lwrdw_param_t const lower_dw_params = {
.word_unsigned = word_unsigned,
.word_signed = word_signed,
.doubleword_size = 64,