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