Home | History | Annotate | Line # | Download | only in igen
      1   1.1  christos /* The IGEN simulator generator for GDB, the GNU Debugger.
      2   1.1  christos 
      3  1.11  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.11  christos #ifndef IGEN_LD_CACHE_H
     23  1.11  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.3  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.10  christos extern cache_entry *load_cache_table (const char *file_name);
     68  1.11  christos 
     69  1.11  christos #endif /* IGEN_LD_CACHE_H */
     70