windows-nt/Source/XPSP1/NT/base/ntos/ke/ia64/festate.h
2020-09-26 16:20:57 +08:00

113 lines
3.8 KiB
C

/******************************
Intel Confidential
******************************/
#ifndef _EM_STATE_H
#define _EM_STATE_H
/*****************************/
/* Processor's State */
/*****************************/
#ifndef FPSR
#define FPSR ps->state_AR[ar_fpsr].fpsr
#endif
#ifndef FPSR_value
#define FPSR_value ps->state_AR[ar_fpsr].uint_value
#endif
#ifndef PSR
#define PSR ps->state_PSR
#endif
#ifndef IP
#define IP ps->state_IP
#endif
#ifndef AR
#define AR ps->state_AR
#endif
#ifndef FR
#define FR ps->state_FR
#endif
#ifndef GR
#define GR ps->state_GR
#endif
#ifndef PR
#define PR ps->state_PR
#endif
#ifndef MEM
#define MEM ps->state_MEM
#endif
#ifndef UM
#define UM ps->state_PSR
#endif
#define FPSR_traps (EM_uint_t)((ps->state_AR[ar_fpsr].uint_value>> 0)&0x3F)
#define FPSR_sf0_flags (EM_uint_t)((ps->state_AR[ar_fpsr].uint_value>>13)&0x3F)
#define FPSR_sf1_flags (EM_uint_t)((ps->state_AR[ar_fpsr].uint_value>>26)&0x3F)
#define FPSR_sf2_flags (EM_uint_t)((ps->state_AR[ar_fpsr].uint_value>>39)&0x3F)
#define FPSR_sf3_flags (EM_uint_t)((ps->state_AR[ar_fpsr].uint_value>>52)&0x3F)
#define FPSR_sf0_controls (EM_uint_t)((ps->state_AR[ar_fpsr].uint_value>> 6)&0x7F)
#define FPSR_sf1_controls (EM_uint_t)((ps->state_AR[ar_fpsr].uint_value>>19)&0x7F)
#define FPSR_sf2_controls (EM_uint_t)((ps->state_AR[ar_fpsr].uint_value>>32)&0x7F)
#define FPSR_sf3_controls (EM_uint_t)((ps->state_AR[ar_fpsr].uint_value>>45)&0x7F)
#define GENERAL_FORM ps->state_form.general_form
#define DATA_FORM ps->state_form.data_form
#define CONTROL_FORM ps->state_form.control_form
#define FP82_FLOATING_FORM ps->state_form.fp82_floating_form
#define CLEAR_FORM ps->state_form.clear_form
#define NO_CLEAR_FORM ps->state_form.no_clear_form
#define HIGH_UNSIGNED_FORM ps->state_form.high_unsigned_form
#define LOW_FORM ps->state_form.low_form
#define HIGH_FORM ps->state_form.high_form
#define NEG_SIGN_FORM ps->state_form.neg_sign_form
#define SIGN_FORM ps->state_form.sign_form
#define SIGN_EXP_FORM ps->state_form.sign_exp_form
#define MIX_L_FORM ps->state_form.mix_l_form
#define MIX_R_FORM ps->state_form.mix_r_form
#define MIX_LR_FORM ps->state_form.mix_lr_form
#define SXT_L_FORM ps->state_form.sxt_l_form
#define SXT_R_FORM ps->state_form.sxt_r_form
#define PACK_FORM ps->state_form.pack_form
#define SWAP_FORM ps->state_form.swap_form
#define SWAP_NL_FORM ps->state_form.swap_nl_form
#define SWAP_NR_FORM ps->state_form.swap_nr_form
#define SIGNED_FORM ps->state_form.signed_form
#define TRUNC_FORM ps->state_form.trunc_form
#define UNSIGNED_FORM ps->state_form.unsigned_form
#define SINGLE_FORM ps->state_form.single_form
#define DOUBLE_FORM ps->state_form.double_form
#define EXPONENT_FORM ps->state_form.exponent_form
#define SIGNIFICAND_FORM ps->state_form.significand_form
#define NO_BASE_UPDATE_FORM ps->state_form.no_base_update_form
#define REGISTER_BASE_UPDATE_FORM ps->state_form.register_base_update_form
#define IMMEDIATE_BASE_UPDATE_FORM ps->state_form.immediate_base_update_form
#define FCHECK_BRANCH_IMPLEMENTED ps->state_form.fcheck_branch_implemented
/*
The following concern software assistance. For an implementation-determined
software assistance fault or trap to occur (when encountering
denormals MERCED_RTL must be 1. An architecturally-mandated swa
can still occur when MERCED_RTL is 0. Such an assist occurs in frcpa and
fprcpa.
*/
#define MERCED_RTL ps->state_MERCED_RTL
#endif /* _EM_STATE_H */