1/* This file is part of the program psim. 2 3 Copyright (C) 1994-1997 Andrew Cagney <cagney@highland.com.au> 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 19 */ 20 21 22 23/* Output code to manipulate the instruction cache: either create it 24 or reference it */ 25 26typedef enum { 27 declare_variables, 28 define_variables, 29 undef_variables, 30} icache_decl_type; 31 32typedef enum { 33 do_not_use_icache = 0, 34 get_values_from_icache = 0x1, 35 put_values_in_icache = 0x2, 36 both_values_and_icache = 0x3, 37} icache_body_type; 38 39extern void print_icache_body 40(lf *file, 41 insn *instruction, 42 insn_bits *expanded_bits, 43 cache_table *cache_rules, 44 icache_decl_type what_to_declare, 45 icache_body_type what_to_do); 46 47 48/* Output an instruction cache decode function */ 49 50extern insn_handler print_icache_declaration; 51extern insn_handler print_icache_definition; 52 53 54/* Output an instruction cache support function */ 55 56extern function_handler print_icache_internal_function_declaration; 57extern function_handler print_icache_internal_function_definition; 58 59 60/* Output the instruction cache table data structure */ 61 62extern void print_icache_struct 63(insn_table *instructions, 64 cache_table *cache_rules, 65 lf *file); 66 67 68/* Output a single instructions decoder */ 69