Path: blob/master/src/hotspot/cpu/ppc/c2_MacroAssembler_ppc.hpp
40930 views
/*1* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*22*/2324#ifndef CPU_PPC_C2_MACROASSEMBLER_PPC_HPP25#define CPU_PPC_C2_MACROASSEMBLER_PPC_HPP2627// C2_MacroAssembler contains high-level macros for C22829public:30// Intrinsics for CompactStrings31// Compress char[] to byte[] by compressing 16 bytes at once.32void string_compress_16(Register src, Register dst, Register cnt,33Register tmp1, Register tmp2, Register tmp3, Register tmp4, Register tmp5,34Label& Lfailure);3536// Compress char[] to byte[]. cnt must be positive int.37void string_compress(Register src, Register dst, Register cnt, Register tmp, Label& Lfailure);3839// Inflate byte[] to char[] by inflating 16 bytes at once.40void string_inflate_16(Register src, Register dst, Register cnt,41Register tmp1, Register tmp2, Register tmp3, Register tmp4, Register tmp5);4243// Inflate byte[] to char[]. cnt must be positive int.44void string_inflate(Register src, Register dst, Register cnt, Register tmp);4546void string_compare(Register str1, Register str2, Register cnt1, Register cnt2,47Register tmp1, Register result, int ae);4849void array_equals(bool is_array_equ, Register ary1, Register ary2,50Register limit, Register tmp1, Register result, bool is_byte);5152void string_indexof(Register result, Register haystack, Register haycnt,53Register needle, ciTypeArray* needle_values, Register needlecnt, int needlecntval,54Register tmp1, Register tmp2, Register tmp3, Register tmp4, int ae);5556void string_indexof_char(Register result, Register haystack, Register haycnt,57Register needle, jchar needleChar, Register tmp1, Register tmp2, bool is_byte);5859void has_negatives(Register src, Register cnt, Register result, Register tmp1, Register tmp2);6061#endif // CPU_PPC_C2_MACROASSEMBLER_PPC_HPP626364