[PATCH] S/390: Remove support for the hexdecimal floating point format
Ulrich Weigand
uweigand@de.ibm.com
Fri Apr 20 14:29:00 GMT 2007
Andreas Krebbel wrote:
> 2007-04-20 Andreas Krebbel <krebbel1@de.ibm.com>
>
> * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
> "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
> "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
> "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
> "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
> "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
> "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
> "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
> "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
>
> ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
> "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
> "mul<mode>3", "div<mode>3"): Insn definitions added.
>
> ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
> "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
> to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
>
> ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
> "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
> "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
>
> ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
>
> * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
> TARGET_FLOAT_FORMAT): Macro definitions removed.
> (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
>
> * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
> z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
> (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
> (s390_gen_rtx_const_DI): Function removed.
>
> * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
This is OK, thanks!
As a minor follow-on cleanup, could you change in:
> ! (define_expand "fix_trunc<mode>si2"
> [(set (match_operand:SI 0 "register_operand" "")
> ! (fix:SI (match_operand:DSF 1 "nonimmediate_operand" "")))]
> "TARGET_HARD_FLOAT"
> {
> ! operands[1] = force_reg (<MODE>mode, operands[1]);
> ! emit_insn (gen_fix_trunc<mode>si2_bfp (operands[0], operands[1], GEN_INT (5)));
> DONE;
> })
the operand 1 predicate to register_operand and then remove
the force_reg? That's a left-over from when we wanted to
allow memory operands for the IBM-float case.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com
More information about the Gcc-patches
mailing list