1 1.1 christos /* The IGEN simulator generator for GDB, the GNU Debugger. 2 1.1 christos 3 1.1.1.10 christos Copyright 2002-2024 Free Software Foundation, Inc. 4 1.1 christos 5 1.1 christos Contributed by Andrew Cagney. 6 1.1 christos 7 1.1 christos This file is part of GDB. 8 1.1 christos 9 1.1 christos This program is free software; you can redistribute it and/or modify 10 1.1 christos it under the terms of the GNU General Public License as published by 11 1.1 christos the Free Software Foundation; either version 3 of the License, or 12 1.1 christos (at your option) any later version. 13 1.1 christos 14 1.1 christos This program is distributed in the hope that it will be useful, 15 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of 16 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 1.1 christos GNU General Public License for more details. 18 1.1 christos 19 1.1 christos You should have received a copy of the GNU General Public License 20 1.1 christos along with this program. If not, see <http://www.gnu.org/licenses/>. */ 21 1.1 christos 22 1.1.1.10 christos #ifndef IGEN_LD_CACHE_H 23 1.1.1.10 christos #define IGEN_LD_CACHE_H 24 1.1 christos 25 1.1 christos /* For backward compatibility only - load a standalone cache macro table */ 26 1.1 christos 27 1.1 christos /* Instruction unpacking: 28 1.1 christos 29 1.1 christos Once the instruction has been decoded, the register (and other) 30 1.1 christos fields within the instruction need to be extracted. 31 1.1 christos 32 1.1 christos The table that follows determines how each field should be treated. 33 1.1 christos Importantly it considers the case where the extracted field is to 34 1.1.1.4 christos be used immediately or stored in an instruction cache. 35 1.1 christos 36 1.1 christos <type> 37 1.1 christos 38 1.1 christos Indicates what to do with the cache entry. If a cache is to be 39 1.1 christos used. SCRATCH and CACHE values are defined when a cache entry is 40 1.1 christos being filled while CACHE and COMPUTE values are defined in the 41 1.1 christos semantic code. 42 1.1 christos 43 1.1 christos Zero marks the end of the table. More importantly 1. indicates 44 1.1 christos that the entry is valid and can be cached. 2. indicates that that 45 1.1 christos the entry is valid but can not be cached. 46 1.1 christos 47 1.1 christos <field_name> 48 1.1 christos 49 1.1 christos The field name as given in the instruction spec. 50 1.1 christos 51 1.1 christos <derived_name> 52 1.1 christos 53 1.1 christos A new name for <field_name> once it has been extracted from the 54 1.1 christos instruction (and possibly stored in the instruction cache). 55 1.1 christos 56 1.1 christos <type> 57 1.1 christos 58 1.1 christos String specifying the storage type for <new_name> (the extracted 59 1.1 christos field>. 60 1.1 christos 61 1.1 christos <expression> 62 1.1 christos 63 1.1 christos Specifies how to get <new_name> from <old_name>. If null, old and 64 1.1 christos new name had better be the same. */ 65 1.1 christos 66 1.1 christos 67 1.1.1.9 christos extern cache_entry *load_cache_table (const char *file_name); 68 1.1.1.10 christos 69 1.1.1.10 christos #endif /* IGEN_LD_CACHE_H */ 70