From 1a4fa807f16ece6b5e334155f01348139564f9e7 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 29 Oct 1996 05:54:16 +0000 Subject: Add cases for SIGN_EXTEND and ZERO_EXTEND to RTX_COSTS From-SVN: r13073 --- gcc/config/mips/mips.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 0c96e65b7..624fdf7 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -3026,7 +3026,24 @@ while (0) else if (mips_cpu == PROCESSOR_R5000) \ return COSTS_N_INSNS (36); \ else \ - return COSTS_N_INSNS (69); + return COSTS_N_INSNS (69); \ + \ + case SIGN_EXTEND: \ + /* A sign extend from SImode to DImode in 64 bit mode is often \ + zero instructions, because the result can often be used \ + directly by another instruction; we'll call it one. */ \ + if (TARGET_64BIT && GET_MODE (X) == DImode \ + && GET_MODE (XEXP (X, 0)) == SImode) \ + return COSTS_N_INSNS (1); \ + else \ + return COSTS_N_INSNS (2); \ + \ + case ZERO_EXTEND: \ + if (TARGET_64BIT && GET_MODE (X) == DImode \ + && GET_MODE (XEXP (X, 0)) == SImode) \ + return COSTS_N_INSNS (2); \ + else \ + return COSTS_N_INSNS (1); /* An expression giving the cost of an addressing mode that contains ADDRESS. If not defined, the cost is computed from the -- cgit v1.1