⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cp1.h

📁 这个是LINUX下的GDB调度工具的源码
💻 H
字号:
/*> cp1.h <*//* MIPS Simulator FPU (CoProcessor 1) definitions.   Copyright (C) 1997, 1998, 2002 Free Software Foundation, Inc.   Derived from sim-main.h contributed by Cygnus Solutions,   modified substantially by Ed Satterthwaite of Broadcom Corporation   (SiByte).This file is part of GDB, the GNU debugger.This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public License alongwith this program; if not, write to the Free Software Foundation, Inc.,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */#ifndef CP1_H#define CP1_H/* See sim-main.h for allocation of registers FCR0 and FCR31 (FCSR)    in CPU state (struct sim_cpu), and for FPU functions.  */#define fcsr_FCC_mask      (0xFE800000)#define fcsr_FCC_shift     (23)#define	fcsr_FCC_bit(cc)   ((cc) == 0 ? 23 : (24 + (cc)))#define fcsr_FS            (1 << 24) /* MIPS III onwards : Flush to Zero */#define fcsr_ZERO_mask     (0x007C0000)#define fcsr_CAUSE_mask    (0x0003F000)#define fcsr_CAUSE_shift   (12)#define fcsr_ENABLES_mask  (0x00000F80)#define fcsr_ENABLES_shift (7)#define fcsr_FLAGS_mask    (0x0000007C)#define fcsr_FLAGS_shift   (2)#define fcsr_RM_mask       (0x00000003)#define fcsr_RM_shift      (0)#define fenr_FS            (0x00000004)/* Macros to update and retrieve the FCSR condition-code bits.  This   is complicated by the fact that there is a hole in the index range   of the bits within the FCSR register.  (Note that the number of bits   visible depends on the ISA in use, but that is handled elsewhere.)  */#define SETFCC(cc,v) \  do { \    (FCSR = ((FCSR & ~(1 << fcsr_FCC_bit(cc))) | ((v) << fcsr_FCC_bit(cc)))); \  } while (0)#define GETFCC(cc) ((FCSR & (1 << fcsr_FCC_bit(cc))) != 0 ? 1 : 0)/* Read flush-to-zero bit (not right-justified).  */#define GETFS()            ((int)(FCSR & fcsr_FS))/* FCSR flag bits definitions and access macros.  */#define IR            0   /* I: Inexact Result */#define UF            1   /* U: UnderFlow */#define OF            2   /* O: OverFlow */#define DZ            3   /* Z: Division by Zero */#define IO            4   /* V: Invalid Operation */#define UO            5   /* E: Unimplemented Operation (CAUSE field only) */#define FP_FLAGS(b)   (1 << ((b) + fcsr_FLAGS_shift))#define FP_ENABLE(b)  (1 << ((b) + fcsr_ENABLES_shift))#define FP_CAUSE(b)   (1 << ((b) + fcsr_CAUSE_shift))/* Rounding mode bit definitions and access macros.  */#define FP_RM_NEAREST 0   /* Round to nearest (Round).  */#define FP_RM_TOZERO  1   /* Round to zero (Trunc).  */#define FP_RM_TOPINF  2   /* Round to Plus infinity (Ceil).  */#define FP_RM_TOMINF  3   /* Round to Minus infinity (Floor).  */#define GETRM()       ((FCSR >> fcsr_RM_shift) & fcsr_RM_mask)#endif /* CP1_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -