root/exec/mipsfpu.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


     1 /* Program execution for Emacs.
     2 
     3 Copyright (C) 2023 Free Software Foundation, Inc.
     4 
     5 This file is part of GNU Emacs.
     6 
     7 GNU Emacs is free software: you can redistribute it and/or modify
     8 it under the terms of the GNU General Public License as published by
     9 the Free Software Foundation, either version 3 of the License, or (at
    10 your option) any later version.
    11 
    12 GNU Emacs is distributed in the hope that it will be useful,
    13 but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 GNU General Public License for more details.
    16 
    17 You should have received a copy of the GNU General Public License
    18 along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
    19 
    20 
    21 
    22 #ifndef _MIPSFPU_H_
    23 #define _MIPSFPU_H_
    24 
    25 #include "exec.h"
    26 
    27 struct mips_elf_abi_flags
    28 {
    29   /* Version of flags structure.  */
    30   uint16_t version;
    31 
    32   /* The level of the ISA: 1-5, 32, 64.  */
    33   uint8_t isa_level;
    34 
    35   /* The revision of ISA: 0 for MIPS V and below, 1-n otherwise.  */
    36   uint8_t isa_rev;
    37 
    38   /* The size of general purpose registers.  */
    39   uint8_t gpr_size;
    40 
    41   /* The size of co-processor 1 registers.  */
    42   uint8_t cpr1_size;
    43 
    44   /* The size of co-processor 2 registers.  */
    45   uint8_t cpr2_size;
    46 
    47   /* The floating-point ABI.  */
    48   uint8_t fp_abi;
    49 
    50   /* Mask of processor-specific extensions.  */
    51   uint32_t isa_ext;
    52 
    53   /* Mask of ASEs used.  */
    54   uint32_t ases;
    55 
    56   /* Mask of general flags.  */
    57   uint32_t flags1;
    58 
    59   /* Mask of general flags.  */
    60   uint32_t flags2;
    61 };
    62 
    63 
    64 
    65 /* Floating point modes.  */
    66 
    67 #define FP_FR0          0
    68 #define FP_FR1          1
    69 #define FP_FRE          3
    70 
    71 
    72 
    73 /* Defined in mipsfpu.c.  */
    74 
    75 extern bool cpu_supports_fr0_p (void);
    76 extern int determine_fpu_mode (elf_header *, elf_header *,
    77                                int *, struct mips_elf_abi_flags *,
    78                                struct mips_elf_abi_flags *);
    79 
    80 
    81 
    82 #endif /* _MIPSFPU_H_ */

/* [<][>][^][v][top][bottom][index][help] */