stubRoutines_ppc.hpp revision 11658:8a5735c11a84
192108Sphk/*
292108Sphk * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
392108Sphk * Copyright (c) 2012, 2016 SAP SE. All rights reserved.
492108Sphk * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
592108Sphk *
692108Sphk * This code is free software; you can redistribute it and/or modify it
792108Sphk * under the terms of the GNU General Public License version 2 only, as
892108Sphk * published by the Free Software Foundation.
992108Sphk *
1092108Sphk * This code is distributed in the hope that it will be useful, but WITHOUT
1192108Sphk * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1292108Sphk * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1392108Sphk * version 2 for more details (a copy is included in the LICENSE file that
1492108Sphk * accompanied this code).
1592108Sphk *
1692108Sphk * You should have received a copy of the GNU General Public License version
1792108Sphk * 2 along with this work; if not, write to the Free Software Foundation,
1892108Sphk * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1992108Sphk *
2092108Sphk * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2192108Sphk * or visit www.oracle.com if you need additional information or have any
2292108Sphk * questions.
2392108Sphk *
2492108Sphk */
2592108Sphk
2692108Sphk#ifndef CPU_PPC_VM_STUBROUTINES_PPC_HPP
2792108Sphk#define CPU_PPC_VM_STUBROUTINES_PPC_HPP
2892108Sphk
2992108Sphk// This file holds the platform specific parts of the StubRoutines
3092108Sphk// definition. See stubRoutines.hpp for a description on how to
3192108Sphk// extend it.
3292108Sphk
3392108Sphkstatic bool returns_to_call_stub(address return_pc) { return return_pc == _call_stub_return_address; }
3492108Sphk
3592108Sphkenum platform_dependent_constants {
36116196Sobrien  code_size1 = 20000,          // simply increase if too small (assembler will crash if too small)
37116196Sobrien  code_size2 = 20000           // simply increase if too small (assembler will crash if too small)
38116196Sobrien};
3992108Sphk
4092108Sphk// CRC32 Intrinsics.
4192108Sphk#define CRC32_COLUMN_SIZE 256
42113926Sphk#define CRC32_BYFOUR
4392108Sphk#ifdef  CRC32_BYFOUR
4492108Sphk  #define CRC32_TABLES 8
4592108Sphk#else
4692108Sphk  #define CRC32_TABLES 1
4792108Sphk#endif
4892108Sphk
4992108Sphkclass ppc64 {
50139451Sjhb friend class StubGenerator;
51139451Sjhb
5292108Sphk private:
5392108Sphk
5493250Sphk  // CRC32 Intrinsics.
5592108Sphk  static juint _crc_table[CRC32_TABLES][CRC32_COLUMN_SIZE];
5692108Sphk
5792108Sphk public:
5892108Sphk
5992108Sphk  // CRC32 Intrinsics.
6092108Sphk  static void generate_load_crc_table_addr(MacroAssembler* masm, Register table);
6192108Sphk
6292108Sphk};
63110592Sphk
64113926Sphk#endif // CPU_PPC_VM_STUBROUTINES_PPC_HPP
6592108Sphk