001 /* 002 * This file is part of the Jikes RVM project (http://jikesrvm.org). 003 * 004 * This file is licensed to You under the Eclipse Public License (EPL); 005 * You may not use this file except in compliance with the License. You 006 * may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/eclipse-1.0.php 009 * 010 * See the COPYRIGHT.txt file distributed with this work for information 011 * regarding copyright ownership. 012 */ 013 package org.jikesrvm.compilers.common.assembler; 014 015 /** 016 * This class has been created to work around a bug whereby the system seems to have gotten 017 * confused by the relationship between:<p> 018 * 019 * ForwardReference -> ForwardReference.ShortBranch -> Assembler.ShortBranch, and Assembler<p> 020 * 021 * This problem does not exist under IA32 since there is no need for Assembler.ShortBranch<p> 022 */ 023 public abstract class AbstractAssembler { 024 public abstract void patchShortBranch(int sourceMachinecodeIndex); 025 026 public abstract void patchUnconditionalBranch(int sourceMachinecodeIndex); 027 028 public abstract void patchConditionalBranch(int sourceMachinecodeIndex); 029 030 public abstract void patchSwitchCase(int sourceMachinecodeIndex); 031 032 public abstract void patchLoadReturnAddress(int sourceMachinecodeIndex); 033 }