1 |
# HG changeset patch |
2 |
# User goetz |
3 |
# Date 1477563748 -7200 |
4 |
# Thu Oct 27 12:22:28 2016 +0200 |
5 |
# Node ID 9b9d9e11c04d5e5f64829d34752e5c94b1c7d911 |
6 |
# Parent 92f0dbe76a13992cc27188e0f68e4b1771c7004a |
7 |
8168318, PR3466, RH1498320: PPC64: Use cmpldi instead of li/cmpld |
8 |
Reviewed-by: goetz |
9 |
Contributed-by: igor.nunes@eldorado.org.br |
10 |
|
11 |
diff --git a/src/cpu/ppc/vm/ppc.ad b/src/cpu/ppc/vm/ppc.ad |
12 |
--- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad |
13 |
+++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad |
14 |
@@ -10571,6 +10571,17 @@ |
15 |
ins_pipe(pipe_class_compare); |
16 |
%} |
17 |
|
18 |
+instruct cmpP_reg_null(flagsReg crx, iRegP_N2P src1, immP_0or1 src2) %{ |
19 |
+ match(Set crx (CmpP src1 src2)); |
20 |
+ format %{ "CMPLDI $crx, $src1, $src2 \t// ptr" %} |
21 |
+ size(4); |
22 |
+ ins_encode %{ |
23 |
+ // TODO: PPC port $archOpcode(ppc64Opcode_cmpl); |
24 |
+ __ cmpldi($crx$$CondRegister, $src1$$Register, (int)((short)($src2$$constant & 0xFFFF))); |
25 |
+ %} |
26 |
+ ins_pipe(pipe_class_compare); |
27 |
+%} |
28 |
+ |
29 |
// Used in postalloc expand. |
30 |
instruct cmpP_reg_imm16(flagsReg crx, iRegPsrc src1, immL16 src2) %{ |
31 |
// This match rule prevents reordering of node before a safepoint. |