Files
admin
base
basedrv
boot
busdrv
cluster
cmd
crts
ddk
dload
dloadhandler
efiutil
eventlog
firmware
fs
fsrec
hals
headless
inc
mspatch
mvdm
ntdll
ntdllsym
ntos
arb
cache
config
dbgk
ex
fsrtl
fstub
inc
init
io
kd64
ke
alpha
amd64
axp64
i386
ia64
alignem.c
allproc.c
apcint.s
apcuser.c
callback.c
callout.s
clock.c
context.c
ctxswap.s
debugctx.s
em_prototypes.h
em_support.h
em_types.h
emfloat.h
exceptn.c
fedefs.h
fehelper.c
fehelper.h
feinstr.c
feinstr.h
feproto.h
fepublic.h
festate.c
festate.h
fesupprt.c
fesupprt.h
fetypes.h
floatem.c
floatem.h
flush.c
flush2.c
flushtb.c
fpmisc.s
fpswa.h
genbld.cmd
genia64.m4
getsetrg.c
ia32def.h
ia32emul.c
ia32trap.c
iafptrap.c
initkr.c
intobj.c
intsup.s
intsupc.c
irql.s
irql2.s
ivtlog.s
ktrace.c
ktrace.h
ktracep.h
miscs.s
mpipi.c
mpipis.s
ntfpia64.h
processr.s
qlock.c
region.c
services.stb
sources
spinlock.s
start.s
table.stb
tb.s
threadbg.s
thredini.c
timindex.s
trap.s
trapc.c
zeropag.s
mp
pae
paemp
tests
up
aligntrk.c
apcobj.c
apcsup.c
balmgr.c
bugcheck.c
channel.c
config.c
debug.c
devquobj.c
dirs
dpcobj.c
dpcsup.c
eventobj.c
genxx.h
genxx.inc
interobj.c
kernldat.c
kevutil.c
ki.h
kiinit.c
miscc.c
mutntobj.c
procobj.c
profobj.c
queueobj.c
raisexcp.c
semphobj.c
services.tab
sources.inc
thredobj.c
thredsup.c
timerobj.c
timersup.c
wait.c
waitsup.c
xipi.c
yield.c
lpc
mm
nls
ntsym
ob
perf
po
ps
raw
rtl
se
vdm
verifier
wmi
dirs
makefil0
ntoskrnl.inc
project.mk
wdm.mng
ntsetup
pnp
published
qfe
remoteboot
screg
seaudit
strsafe
stublibs
subsys
testlockout
tools
urtl
wdmdrv
wdmlib
win32
wmi
wow64
xip
zlib
dirs
prerelease.inc
project.mk
com
developer
drivers
ds
enduser
inetcore
inetsrv
loc
mergedcomponents
multimedia
net
printscan
public
published
sdktools
shell
termsrv
tools
windows
dirs
makefil0
2025-04-27 07:49:33 -04:00

113 lines
3.9 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 */