diff options
Diffstat (limited to 'gcc/config/rl78/rl78.c')
-rw-r--r-- | gcc/config/rl78/rl78.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c index 3e34a88..6f2551c 100644 --- a/gcc/config/rl78/rl78.c +++ b/gcc/config/rl78/rl78.c @@ -598,6 +598,18 @@ rl78_split_movsi (rtx *operands, machine_mode omode) } } +void +rl78_split_movdi (rtx *operands, enum machine_mode omode) +{ + rtx op00, op04, op10, op14; + op00 = rl78_subreg (SImode, operands[0], omode, 0); + op04 = rl78_subreg (SImode, operands[0], omode, 4); + op10 = rl78_subreg (SImode, operands[1], omode, 0); + op14 = rl78_subreg (SImode, operands[1], omode, 4); + emit_insn (gen_movsi (op00, op10)); + emit_insn (gen_movsi (op04, op14)); +} + /* Used by various two-operand expanders which cannot accept all operands in the "far" namespace. Force some such operands into registers so that each pattern has at most one far operand. */ |