< prev index next >

src/hotspot/cpu/ppc/ppc.ad

Print this page

        

*** 1,8 **** // ! // Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. ! // Copyright (c) 2012, 2018 SAP SE. All rights reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 only, as // published by the Free Software Foundation. --- 1,8 ---- // ! // Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved. ! // Copyright (c) 2012, 2019 SAP SE. All rights reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 only, as // published by the Free Software Foundation.
*** 4629,4638 **** --- 4629,4648 ---- op_cost(40); format %{ %} interface(CONST_INTER); %} + // Double Immediate: +0.0d. + operand immD_0() %{ + predicate(jint_cast(n->getd()) == 0); + match(ConD); + + op_cost(0); + format %{ %} + interface(CONST_INTER); + %} + // Integer Register Operands // Integer Destination Register // See definition of reg_class bits32_reg_rw. operand iRegIdst() %{ constraint(ALLOC_IN_RC(bits32_reg_rw));
*** 14007,14017 **** %} instruct repl4S_immI0(iRegLdst dst, immI_0 zero) %{ match(Set dst (ReplicateS zero)); predicate(n->as_Vector()->length() == 4); ! format %{ "LI $dst, #0 \t// replicate4C" %} size(4); ins_encode %{ // TODO: PPC port $archOpcode(ppc64Opcode_addi); __ li($dst$$Register, (int)((short)($zero$$constant & 0xFFFF))); %} --- 14017,14027 ---- %} instruct repl4S_immI0(iRegLdst dst, immI_0 zero) %{ match(Set dst (ReplicateS zero)); predicate(n->as_Vector()->length() == 4); ! format %{ "LI $dst, #0 \t// replicate4S" %} size(4); ins_encode %{ // TODO: PPC port $archOpcode(ppc64Opcode_addi); __ li($dst$$Register, (int)((short)($zero$$constant & 0xFFFF))); %}
*** 14019,14029 **** %} instruct repl4S_immIminus1(iRegLdst dst, immI_minus1 src) %{ match(Set dst (ReplicateS src)); predicate(n->as_Vector()->length() == 4); ! format %{ "LI $dst, -1 \t// replicate4C" %} size(4); ins_encode %{ // TODO: PPC port $archOpcode(ppc64Opcode_addi); __ li($dst$$Register, (int)((short)($src$$constant & 0xFFFF))); %} --- 14029,14039 ---- %} instruct repl4S_immIminus1(iRegLdst dst, immI_minus1 src) %{ match(Set dst (ReplicateS src)); predicate(n->as_Vector()->length() == 4); ! format %{ "LI $dst, -1 \t// replicate4S" %} size(4); ins_encode %{ // TODO: PPC port $archOpcode(ppc64Opcode_addi); __ li($dst$$Register, (int)((short)($src$$constant & 0xFFFF))); %}
*** 14060,14070 **** instruct repl8S_immIminus1(vecX dst, immI_minus1 src) %{ match(Set dst (ReplicateS src)); predicate(n->as_Vector()->length() == 8); ! format %{ "XXLEQV $dst, $src \t// replicate16B" %} size(4); ins_encode %{ __ xxleqv($dst$$VectorSRegister, $dst$$VectorSRegister, $dst$$VectorSRegister); %} ins_pipe(pipe_class_default); --- 14070,14080 ---- instruct repl8S_immIminus1(vecX dst, immI_minus1 src) %{ match(Set dst (ReplicateS src)); predicate(n->as_Vector()->length() == 8); ! format %{ "XXLEQV $dst, $src \t// replicate8S" %} size(4); ins_encode %{ __ xxleqv($dst$$VectorSRegister, $dst$$VectorSRegister, $dst$$VectorSRegister); %} ins_pipe(pipe_class_default);
*** 14081,14091 **** %} instruct repl2I_immI0(iRegLdst dst, immI_0 zero) %{ match(Set dst (ReplicateI zero)); predicate(n->as_Vector()->length() == 2); ! format %{ "LI $dst, #0 \t// replicate4C" %} size(4); ins_encode %{ // TODO: PPC port $archOpcode(ppc64Opcode_addi); __ li($dst$$Register, (int)((short)($zero$$constant & 0xFFFF))); %} --- 14091,14101 ---- %} instruct repl2I_immI0(iRegLdst dst, immI_0 zero) %{ match(Set dst (ReplicateI zero)); predicate(n->as_Vector()->length() == 2); ! format %{ "LI $dst, #0 \t// replicate2I" %} size(4); ins_encode %{ // TODO: PPC port $archOpcode(ppc64Opcode_addi); __ li($dst$$Register, (int)((short)($zero$$constant & 0xFFFF))); %}
*** 14093,14103 **** %} instruct repl2I_immIminus1(iRegLdst dst, immI_minus1 src) %{ match(Set dst (ReplicateI src)); predicate(n->as_Vector()->length() == 2); ! format %{ "LI $dst, -1 \t// replicate4C" %} size(4); ins_encode %{ // TODO: PPC port $archOpcode(ppc64Opcode_addi); __ li($dst$$Register, (int)((short)($src$$constant & 0xFFFF))); %} --- 14103,14113 ---- %} instruct repl2I_immIminus1(iRegLdst dst, immI_minus1 src) %{ match(Set dst (ReplicateI src)); predicate(n->as_Vector()->length() == 2); ! format %{ "LI $dst, -1 \t// replicate2I" %} size(4); ins_encode %{ // TODO: PPC port $archOpcode(ppc64Opcode_addi); __ li($dst$$Register, (int)((short)($src$$constant & 0xFFFF))); %}
*** 14667,14677 **** __ xxpermdi($dst$$VectorSRegister, $src$$FloatRegister->to_vsr(), $src$$FloatRegister->to_vsr(), 0); %} ins_pipe(pipe_class_default); %} ! instruct repl2D_immI0(vecX dst, immI_0 zero) %{ match(Set dst (ReplicateD zero)); predicate(n->as_Vector()->length() == 2); format %{ "XXLXOR $dst, $zero \t// replicate2D" %} size(4); --- 14677,14687 ---- __ xxpermdi($dst$$VectorSRegister, $src$$FloatRegister->to_vsr(), $src$$FloatRegister->to_vsr(), 0); %} ins_pipe(pipe_class_default); %} ! instruct repl2D_immD0(vecX dst, immD_0 zero) %{ match(Set dst (ReplicateD zero)); predicate(n->as_Vector()->length() == 2); format %{ "XXLXOR $dst, $zero \t// replicate2D" %} size(4);
*** 14679,14700 **** __ xxlxor($dst$$VectorSRegister, $dst$$VectorSRegister, $dst$$VectorSRegister); %} ins_pipe(pipe_class_default); %} - instruct repl2D_immIminus1(vecX dst, immI_minus1 src) %{ - match(Set dst (ReplicateD src)); - predicate(n->as_Vector()->length() == 2); - - format %{ "XXLEQV $dst, $src \t// replicate16B" %} - size(4); - ins_encode %{ - __ xxleqv($dst$$VectorSRegister, $dst$$VectorSRegister, $dst$$VectorSRegister); - %} - ins_pipe(pipe_class_default); - %} - instruct mtvsrd(vecX dst, iRegLsrc src) %{ predicate(false); effect(DEF dst, USE src); format %{ "MTVSRD $dst, $src \t// Move to 16-byte register" %} --- 14689,14698 ----
*** 14752,14762 **** instruct repl2L_immIminus1(vecX dst, immI_minus1 src) %{ match(Set dst (ReplicateL src)); predicate(n->as_Vector()->length() == 2); ! format %{ "XXLEQV $dst, $src \t// replicate16B" %} size(4); ins_encode %{ __ xxleqv($dst$$VectorSRegister, $dst$$VectorSRegister, $dst$$VectorSRegister); %} ins_pipe(pipe_class_default); --- 14750,14760 ---- instruct repl2L_immIminus1(vecX dst, immI_minus1 src) %{ match(Set dst (ReplicateL src)); predicate(n->as_Vector()->length() == 2); ! format %{ "XXLEQV $dst, $src \t// replicate2L" %} size(4); ins_encode %{ __ xxleqv($dst$$VectorSRegister, $dst$$VectorSRegister, $dst$$VectorSRegister); %} ins_pipe(pipe_class_default);
< prev index next >