From 0a0b733a3d3ce0e9a0ff0c932356bea25c82b6f9 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Thu, 26 Oct 1995 17:52:23 -0400 Subject: [PATCH] (negdi2): Use TARGET_LITTLE_ENDIAN. From-SVN: r10514 --- gcc/config/sh/sh.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 73fc26ebede..36ec02e02ce 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -949,11 +949,14 @@ "" " { - rtx low_src = operand_subword (operands[1], 1, 0, DImode); - rtx high_src = operand_subword (operands[1], 0, 0, DImode); + int low_word = (TARGET_LITTLE_ENDIAN ? 0 : 1); + int high_word = (TARGET_LITTLE_ENDIAN ? 1 : 0); - rtx low_dst = operand_subword (operands[0], 1, 1, DImode); - rtx high_dst = operand_subword (operands[0], 0, 1, DImode); + rtx low_src = operand_subword (operands[1], low_word, 0, DImode); + rtx high_src = operand_subword (operands[1], high_word, 0, DImode); + + rtx low_dst = operand_subword (operands[0], low_word, 1, DImode); + rtx high_dst = operand_subword (operands[0], high_word, 1, DImode); emit_insn (gen_clrt ()); emit_insn (gen_negc (low_dst, low_src)); -- 2.30.2