# HG changeset patch # User mdoerr # Date 1496385934 -7200 # Node ID d6e7c7d2c6f69906b4cb643a6813eccba0de988f # Parent 1cc0a65e78aa6c0b8dbe0e8ce0f2bdc372f26c2f 8181420: PPC: Image conversion improvements Reviewed-by: thartmann, simonis, mbaesken diff -r 1cc0a65e78aa -r d6e7c7d2c6f6 src/cpu/ppc/vm/ppc.ad --- a/src/cpu/ppc/vm/ppc.ad Tue May 30 12:00:16 2017 -0700 +++ b/src/cpu/ppc/vm/ppc.ad Fri Jun 02 08:45:34 2017 +0200 @@ -10230,6 +10230,29 @@ ins_pipe(pipe_class_compare); %} +// Added CmpUL for LoopPredicate. +instruct cmpUL_reg_reg(flagsReg crx, iRegLsrc src1, iRegLsrc src2) %{ + match(Set crx (CmpUL src1 src2)); + format %{ "CMPLD $crx, $src1, $src2" %} + size(4); + ins_encode %{ + // TODO: PPC port $archOpcode(ppc64Opcode_cmpl); + __ cmpld($crx$$CondRegister, $src1$$Register, $src2$$Register); + %} + ins_pipe(pipe_class_compare); +%} + +instruct cmpUL_reg_imm16(flagsReg crx, iRegLsrc src1, uimmL16 src2) %{ + match(Set crx (CmpUL src1 src2)); + format %{ "CMPLDI $crx, $src1, $src2" %} + size(4); + ins_encode %{ + // TODO: PPC port $archOpcode(ppc64Opcode_cmpli); + __ cmpldi($crx$$CondRegister, $src1$$Register, $src2$$constant); + %} + ins_pipe(pipe_class_compare); +%} + instruct testL_reg_reg(flagsRegCR0 cr0, iRegLsrc src1, iRegLsrc src2, immL_0 zero) %{ match(Set cr0 (CmpL (AndL src1 src2) zero)); // r0 is killed