Path: blob/aarch64-shenandoah-jdk8u272-b10/hotspot/src/cpu/zero/vm/assembler_zero.cpp
32285 views
/*1* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.2* Copyright 2007, 2008, 2009 Red Hat, Inc.3* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.4*5* This code is free software; you can redistribute it and/or modify it6* under the terms of the GNU General Public License version 2 only, as7* published by the Free Software Foundation.8*9* This code is distributed in the hope that it will be useful, but WITHOUT10* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or11* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License12* version 2 for more details (a copy is included in the LICENSE file that13* accompanied this code).14*15* You should have received a copy of the GNU General Public License version16* 2 along with this work; if not, write to the Free Software Foundation,17* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.18*19* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA20* or visit www.oracle.com if you need additional information or have any21* questions.22*23*/2425#include "precompiled.hpp"26#include "assembler_zero.inline.hpp"27#include "gc_interface/collectedHeap.inline.hpp"28#include "interpreter/interpreter.hpp"29#include "memory/cardTableModRefBS.hpp"30#include "memory/resourceArea.hpp"31#include "prims/methodHandles.hpp"32#include "runtime/biasedLocking.hpp"33#include "runtime/interfaceSupport.hpp"34#include "runtime/objectMonitor.hpp"35#include "runtime/os.hpp"36#include "runtime/sharedRuntime.hpp"37#include "runtime/stubRoutines.hpp"38#include "utilities/macros.hpp"39#if INCLUDE_ALL_GCS40#include "gc_implementation/g1/g1CollectedHeap.inline.hpp"41#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"42#include "gc_implementation/g1/heapRegion.hpp"43#endif // INCLUDE_ALL_GCS4445int AbstractAssembler::code_fill_byte() {46return 0;47}4849#ifdef ASSERT50bool AbstractAssembler::pd_check_instruction_mark() {51ShouldNotCallThis();52return false;53}54#endif5556void Assembler::pd_patch_instruction(address branch, address target) {57ShouldNotCallThis();58}5960void MacroAssembler::align(int modulus) {61while (offset() % modulus != 0)62emit_int8(AbstractAssembler::code_fill_byte());63}6465void MacroAssembler::bang_stack_with_offset(int offset) {66ShouldNotCallThis();67}6869void MacroAssembler::advance(int bytes) {70code_section()->set_end(code_section()->end() + bytes);71}7273RegisterOrConstant MacroAssembler::delayed_value_impl(74intptr_t* delayed_value_addr, Register tmpl, int offset) {75ShouldNotCallThis();76return RegisterOrConstant();77}7879void MacroAssembler::store_oop(jobject obj) {80code_section()->relocate(pc(), oop_Relocation::spec_for_immediate());81emit_address((address) obj);82}8384void MacroAssembler::store_Metadata(Metadata* md) {85code_section()->relocate(pc(), metadata_Relocation::spec_for_immediate());86emit_address((address) md);87}8889static void should_not_call() {90report_should_not_call(__FILE__, __LINE__);91}9293address ShouldNotCallThisStub() {94return (address) should_not_call;95}9697address ShouldNotCallThisEntry() {98return (address) should_not_call;99}100101102