/* SmArc VMachine - Simplified SPARC emulator Copyright (C) 2002 Michal Stochmialek This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * $Id: constant.cc,v 1.1 2003/01/02 17:43:54 misto Exp $ */ #include "constant.h" #include "instr_word.h" void constant::process( void ) { bit_word res; iw = get_in(0); if ( iw.format == instr_word::primary_imm ) res = iw.imm13; else if (iw.format == instr_word::branch_format ) res = 4 * iw.dsp22; else if (iw.format == instr_word::call_format ) res = 4 * iw.dsp30; else if (iw.format == instr_word::sethi_format ) res = iw.imm22; #ifdef VMDEBUG cout.form("cache::process: imm = %08X\n", res ); #endif set_out_all( res ); }