From 75f5dc5ae8ef12959354d788009354262545c734 Mon Sep 17 00:00:00 2001 From: goetz Date: Thu, 27 Oct 2016 12:22:28 +0200 Subject: [PATCH] 8168318: PPC64: Use cmpldi instead of li/cmpld Reviewed-by: goetz Contributed-by: igor.nunes@eldorado.org.br --- src/cpu/ppc/vm/ppc.ad | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/cpu/ppc/vm/ppc.ad b/src/cpu/ppc/vm/ppc.ad index c3a64d338..f6bdfe2bb 100644 --- a/src/cpu/ppc/vm/ppc.ad +++ b/src/cpu/ppc/vm/ppc.ad @@ -10571,6 +10571,17 @@ instruct cmpP_reg_reg(flagsReg crx, iRegP_N2P src1, iRegP_N2P src2) %{ ins_pipe(pipe_class_compare); %} +instruct cmpP_reg_null(flagsReg crx, iRegP_N2P src1, immP_0or1 src2) %{ + match(Set crx (CmpP src1 src2)); + format %{ "CMPLDI $crx, $src1, $src2 \t// ptr" %} + size(4); + ins_encode %{ + // TODO: PPC port $archOpcode(ppc64Opcode_cmpl); + __ cmpldi($crx$$CondRegister, $src1$$Register, (int)((short)($src2$$constant & 0xFFFF))); + %} + ins_pipe(pipe_class_compare); +%} + // Used in postalloc expand. instruct cmpP_reg_imm16(flagsReg crx, iRegPsrc src1, immL16 src2) %{ // This match rule prevents reordering of node before a safepoint. -- GitLab