- add __attribute__((regparm(X))) performance trick with gcc on x86
on some cpu instructions (patch from Conn Clark) - performance improvement is 1% on win95 boot
This commit is contained in:
parent
323e42255d
commit
1a518b81fe
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: cpu.cc,v 1.75 2003-02-28 02:37:18 ptrumpet Exp $
|
||||
// $Id: cpu.cc,v 1.76 2003-03-17 00:40:57 cbothamy Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -208,15 +208,15 @@ BX_CPU_C::cpu_loop(Bit32s max_instr_count)
|
||||
|
||||
// iCache hit. Instruction is already decoded and stored in
|
||||
// the instruction cache.
|
||||
BxExecutePtr_t resolveModRM = i->ResolveModrm; // Get as soon as possible for speculation.
|
||||
BxExecutePtr_tR resolveModRM = i->ResolveModrm; // Get as soon as possible for speculation.
|
||||
|
||||
execute = i->execute; // fetch as soon as possible for speculation.
|
||||
if (resolveModRM) {
|
||||
BX_CPU_CALL_METHOD(resolveModRM, (i));
|
||||
BX_CPU_CALL_METHODR(resolveModRM, (i));
|
||||
}
|
||||
#if BX_INSTRUMENTATION
|
||||
// An instruction was found in the iCache.
|
||||
BX_INSTR_OPCODE(BX_CPU_ID, BX_CPU_THIS_PTR eipFetchPtr + eipBiased,
|
||||
BX_INSTR_OPCODE(BX_CPU_ID, BX_CPU_THIS_PTR eipFetchPtr + eipBiased,
|
||||
i->ilen(), BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].cache.u.segment.d_b);
|
||||
#endif
|
||||
}
|
||||
@ -260,7 +260,7 @@ BX_CPU_C::cpu_loop(Bit32s max_instr_count)
|
||||
ret = fetchDecode(fetchPtr, i, maxFetch);
|
||||
}
|
||||
|
||||
BxExecutePtr_t resolveModRM = i->ResolveModrm; // Get function pointers early.
|
||||
BxExecutePtr_tR resolveModRM = i->ResolveModrm; // Get function pointers early.
|
||||
if (ret==0) {
|
||||
#if BX_SupportICache
|
||||
// Invalidate entry, since fetch-decode failed with partial updates
|
||||
@ -282,7 +282,7 @@ BX_CPU_C::cpu_loop(Bit32s max_instr_count)
|
||||
#endif
|
||||
execute = i->execute; // fetch as soon as possible for speculation.
|
||||
if (resolveModRM) {
|
||||
BX_CPU_CALL_METHOD(resolveModRM, (i));
|
||||
BX_CPU_CALL_METHODR(resolveModRM, (i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
230
bochs/cpu/cpu.h
230
bochs/cpu/cpu.h
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: cpu.h,v 1.132 2003-03-02 23:59:09 cbothamy Exp $
|
||||
// $Id: cpu.h,v 1.133 2003-03-17 00:40:58 cbothamy Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -342,6 +342,8 @@ class BX_CPU_C;
|
||||
// Since this is different from when SMF=1, encapsulate it in a macro.
|
||||
# define BX_CPU_CALL_METHOD(func, args) \
|
||||
(this->*((BxExecutePtr_t) (func))) args
|
||||
# define BX_CPU_CALL_METHODR(func, args) \
|
||||
(this->*((BxExecutePtr_tR) (func))) args
|
||||
#else
|
||||
// static member functions. With SMF, there is only one CPU by definition.
|
||||
# define BX_CPU_THIS_PTR BX_CPU(0)->
|
||||
@ -350,6 +352,8 @@ class BX_CPU_C;
|
||||
# define BX_CPU_C_PREFIX
|
||||
# define BX_CPU_CALL_METHOD(func, args) \
|
||||
((BxExecutePtr_t) (func)) args
|
||||
# define BX_CPU_CALL_METHODR(func, args) \
|
||||
((BxExecutePtr_tR) (func)) args
|
||||
#endif
|
||||
|
||||
#if BX_SMP_PROCESSORS==1
|
||||
@ -724,10 +728,10 @@ public:
|
||||
// and a function to execute the instruction after resolving
|
||||
// the memory address (if any).
|
||||
#if BX_USE_CPU_SMF
|
||||
void (*ResolveModrm)(bxInstruction_c *);
|
||||
void (*ResolveModrm)(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
void (*execute)(bxInstruction_c *);
|
||||
#else
|
||||
void (BX_CPU_C::*ResolveModrm)(bxInstruction_c *);
|
||||
void (BX_CPU_C::*ResolveModrm)(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
void (BX_CPU_C::*execute)(bxInstruction_c *);
|
||||
#endif
|
||||
|
||||
@ -968,8 +972,10 @@ public:
|
||||
|
||||
#if BX_USE_CPU_SMF
|
||||
typedef void (*BxExecutePtr_t)(bxInstruction_c *);
|
||||
typedef void (*BxExecutePtr_tR)(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
#else
|
||||
typedef void (BX_CPU_C::*BxExecutePtr_t)(bxInstruction_c *);
|
||||
typedef void (BX_CPU_C::*BxExecutePtr_tR)(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
#endif
|
||||
|
||||
|
||||
@ -2522,128 +2528,128 @@ union {
|
||||
#endif
|
||||
BX_SMF void UndefinedOpcode(bxInstruction_c *);
|
||||
BX_SMF void BxError(bxInstruction_c *i);
|
||||
BX_SMF void BxResolveError(bxInstruction_c *i);
|
||||
BX_SMF void BxResolveError(bxInstruction_c *i) BX_CPP_AttrRegparmN(1);
|
||||
|
||||
BX_SMF void Resolve16Mod0Rm0(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod0Rm1(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod0Rm2(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod0Rm3(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod0Rm4(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod0Rm5(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod0Rm6(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod0Rm7(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod0Rm0(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod0Rm1(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod0Rm2(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod0Rm3(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod0Rm4(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod0Rm5(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod0Rm6(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod0Rm7(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
|
||||
BX_SMF void Resolve16Mod1or2Rm0(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod1or2Rm1(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod1or2Rm2(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod1or2Rm3(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod1or2Rm4(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod1or2Rm5(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod1or2Rm6(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod1or2Rm7(bxInstruction_c *);
|
||||
BX_SMF void Resolve16Mod1or2Rm0(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod1or2Rm1(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod1or2Rm2(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod1or2Rm3(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod1or2Rm4(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod1or2Rm5(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod1or2Rm6(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve16Mod1or2Rm7(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
|
||||
BX_SMF void Resolve32Mod0Rm0(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Rm1(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Rm2(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Rm3(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Rm5(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Rm6(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Rm7(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Rm0(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Rm1(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Rm2(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Rm3(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Rm5(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Rm6(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Rm7(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
|
||||
BX_SMF void Resolve32Mod1or2Rm0(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Rm1(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Rm2(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Rm3(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Rm5(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Rm6(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Rm7(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Rm0(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Rm1(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Rm2(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Rm3(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Rm5(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Rm6(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Rm7(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
|
||||
BX_SMF void Resolve32Mod0Base0(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Base1(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Base2(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Base3(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Base4(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Base5(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Base6(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Base7(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod0Base0(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Base1(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Base2(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Base3(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Base4(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Base5(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Base6(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod0Base7(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
|
||||
BX_SMF void Resolve32Mod1or2Base0(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Base1(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Base2(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Base3(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Base4(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Base5(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Base6(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Base7(bxInstruction_c *);
|
||||
BX_SMF void Resolve32Mod1or2Base0(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Base1(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Base2(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Base3(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Base4(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Base5(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Base6(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve32Mod1or2Base7(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
|
||||
#if BX_SUPPORT_X86_64
|
||||
// 64 bit addressing
|
||||
|
||||
BX_SMF void Resolve64Mod0Rm0(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm1(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm2(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm3(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm5(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm6(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm7(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm8(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm9(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm10(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm11(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm12(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm13(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm14(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm15(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Rm0(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm1(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm2(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm3(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm5(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm6(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm7(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm8(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm9(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm10(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm11(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm12(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm13(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm14(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Rm15(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
|
||||
BX_SMF void Resolve64Mod1or2Rm0(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm1(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm2(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm3(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm5(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm6(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm7(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm8(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm9(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm10(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm11(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm12(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm13(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm14(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm15(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Rm0(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm1(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm2(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm3(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm5(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm6(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm7(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm8(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm9(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm10(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm11(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm12(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm13(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm14(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Rm15(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
|
||||
BX_SMF void Resolve64Mod0Base0(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base1(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base2(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base3(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base4(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base5(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base6(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base7(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base8(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base9(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base10(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base11(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base12(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base13(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base14(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base15(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod0Base0(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base1(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base2(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base3(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base4(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base5(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base6(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base7(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base8(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base9(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base10(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base11(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base12(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base13(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base14(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod0Base15(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
|
||||
BX_SMF void Resolve64Mod1or2Base0(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base1(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base2(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base3(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base4(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base5(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base6(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base7(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base8(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base9(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base10(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base11(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base12(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base13(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base14(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base15(bxInstruction_c *);
|
||||
BX_SMF void Resolve64Mod1or2Base0(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base1(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base2(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base3(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base4(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base5(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base6(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base7(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base8(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base9(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base10(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base11(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base12(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base13(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base14(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
BX_SMF void Resolve64Mod1or2Base15(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
|
||||
#endif // #if BX_SUPPORT_X86_64
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode.cc,v 1.44 2003-02-13 15:04:00 sshwarts Exp $
|
||||
// $Id: fetchdecode.cc,v 1.45 2003-03-17 00:40:58 cbothamy Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -87,7 +87,7 @@ static unsigned BxMemRegsUsed16[8] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
static BxExecutePtr_t BxResolve16Mod0[8] = {
|
||||
static BxExecutePtr_tR BxResolve16Mod0[8] = {
|
||||
&BX_CPU_C::Resolve16Mod0Rm0,
|
||||
&BX_CPU_C::Resolve16Mod0Rm1,
|
||||
&BX_CPU_C::Resolve16Mod0Rm2,
|
||||
@ -98,7 +98,7 @@ static BxExecutePtr_t BxResolve16Mod0[8] = {
|
||||
&BX_CPU_C::Resolve16Mod0Rm7
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve16Mod1or2[8] = {
|
||||
static BxExecutePtr_tR BxResolve16Mod1or2[8] = {
|
||||
&BX_CPU_C::Resolve16Mod1or2Rm0,
|
||||
&BX_CPU_C::Resolve16Mod1or2Rm1,
|
||||
&BX_CPU_C::Resolve16Mod1or2Rm2,
|
||||
@ -109,7 +109,7 @@ static BxExecutePtr_t BxResolve16Mod1or2[8] = {
|
||||
&BX_CPU_C::Resolve16Mod1or2Rm7
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve32Mod0[8] = {
|
||||
static BxExecutePtr_tR BxResolve32Mod0[8] = {
|
||||
&BX_CPU_C::Resolve32Mod0Rm0,
|
||||
&BX_CPU_C::Resolve32Mod0Rm1,
|
||||
&BX_CPU_C::Resolve32Mod0Rm2,
|
||||
@ -120,7 +120,7 @@ static BxExecutePtr_t BxResolve32Mod0[8] = {
|
||||
&BX_CPU_C::Resolve32Mod0Rm7
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve32Mod1or2[8] = {
|
||||
static BxExecutePtr_tR BxResolve32Mod1or2[8] = {
|
||||
&BX_CPU_C::Resolve32Mod1or2Rm0,
|
||||
&BX_CPU_C::Resolve32Mod1or2Rm1,
|
||||
&BX_CPU_C::Resolve32Mod1or2Rm2,
|
||||
@ -131,7 +131,7 @@ static BxExecutePtr_t BxResolve32Mod1or2[8] = {
|
||||
&BX_CPU_C::Resolve32Mod1or2Rm7
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve32Mod0Base[8] = {
|
||||
static BxExecutePtr_tR BxResolve32Mod0Base[8] = {
|
||||
&BX_CPU_C::Resolve32Mod0Base0,
|
||||
&BX_CPU_C::Resolve32Mod0Base1,
|
||||
&BX_CPU_C::Resolve32Mod0Base2,
|
||||
@ -142,7 +142,7 @@ static BxExecutePtr_t BxResolve32Mod0Base[8] = {
|
||||
&BX_CPU_C::Resolve32Mod0Base7,
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve32Mod1or2Base[8] = {
|
||||
static BxExecutePtr_tR BxResolve32Mod1or2Base[8] = {
|
||||
&BX_CPU_C::Resolve32Mod1or2Base0,
|
||||
&BX_CPU_C::Resolve32Mod1or2Base1,
|
||||
&BX_CPU_C::Resolve32Mod1or2Base2,
|
||||
@ -2793,7 +2793,7 @@ modrm_done:
|
||||
else {
|
||||
BxOpcodeInfo_t *OpcodeInfoPtr = BxOpcodeInfo[b1+offset].AnotherArray;
|
||||
instruction->execute = OpcodeInfoPtr[op].ExecutePtr;
|
||||
attr |= OpcodeInfoPtr[op].Attr;
|
||||
attr |= OpcodeInfoPtr[op].Attr;
|
||||
}
|
||||
}
|
||||
// (See note immediately above for comment)
|
||||
@ -2975,7 +2975,7 @@ BX_CPU_C::BxError(bxInstruction_c *i)
|
||||
BX_CPU_THIS_PTR UndefinedOpcode(i);
|
||||
}
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::BxResolveError(bxInstruction_c *i)
|
||||
{
|
||||
BX_PANIC(("BxResolveError: instruction with op1=0x%x", i->b1()));
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode64.cc,v 1.41 2003-03-13 00:45:44 ptrumpet Exp $
|
||||
// $Id: fetchdecode64.cc,v 1.42 2003-03-17 00:40:59 cbothamy Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -101,7 +101,7 @@ static unsigned BxMemRegsUsed16[8] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
static BxExecutePtr_t BxResolve32Mod0[8] = {
|
||||
static BxExecutePtr_tR BxResolve32Mod0[8] = {
|
||||
&BX_CPU_C::Resolve32Mod0Rm0,
|
||||
&BX_CPU_C::Resolve32Mod0Rm1,
|
||||
&BX_CPU_C::Resolve32Mod0Rm2,
|
||||
@ -112,7 +112,7 @@ static BxExecutePtr_t BxResolve32Mod0[8] = {
|
||||
&BX_CPU_C::Resolve32Mod0Rm7
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve32Mod1or2[8] = {
|
||||
static BxExecutePtr_tR BxResolve32Mod1or2[8] = {
|
||||
&BX_CPU_C::Resolve32Mod1or2Rm0,
|
||||
&BX_CPU_C::Resolve32Mod1or2Rm1,
|
||||
&BX_CPU_C::Resolve32Mod1or2Rm2,
|
||||
@ -123,7 +123,7 @@ static BxExecutePtr_t BxResolve32Mod1or2[8] = {
|
||||
&BX_CPU_C::Resolve32Mod1or2Rm7
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve32Mod0Base[8] = {
|
||||
static BxExecutePtr_tR BxResolve32Mod0Base[8] = {
|
||||
&BX_CPU_C::Resolve32Mod0Base0,
|
||||
&BX_CPU_C::Resolve32Mod0Base1,
|
||||
&BX_CPU_C::Resolve32Mod0Base2,
|
||||
@ -134,7 +134,7 @@ static BxExecutePtr_t BxResolve32Mod0Base[8] = {
|
||||
&BX_CPU_C::Resolve32Mod0Base7,
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve32Mod1or2Base[8] = {
|
||||
static BxExecutePtr_tR BxResolve32Mod1or2Base[8] = {
|
||||
&BX_CPU_C::Resolve32Mod1or2Base0,
|
||||
&BX_CPU_C::Resolve32Mod1or2Base1,
|
||||
&BX_CPU_C::Resolve32Mod1or2Base2,
|
||||
@ -145,7 +145,7 @@ static BxExecutePtr_t BxResolve32Mod1or2Base[8] = {
|
||||
&BX_CPU_C::Resolve32Mod1or2Base7,
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve64Mod0[16] = {
|
||||
static BxExecutePtr_tR BxResolve64Mod0[16] = {
|
||||
&BX_CPU_C::Resolve64Mod0Rm0,
|
||||
&BX_CPU_C::Resolve64Mod0Rm1,
|
||||
&BX_CPU_C::Resolve64Mod0Rm2,
|
||||
@ -164,7 +164,7 @@ static BxExecutePtr_t BxResolve64Mod0[16] = {
|
||||
&BX_CPU_C::Resolve64Mod0Rm15
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve64Mod1or2[16] = {
|
||||
static BxExecutePtr_tR BxResolve64Mod1or2[16] = {
|
||||
&BX_CPU_C::Resolve64Mod1or2Rm0,
|
||||
&BX_CPU_C::Resolve64Mod1or2Rm1,
|
||||
&BX_CPU_C::Resolve64Mod1or2Rm2,
|
||||
@ -183,7 +183,7 @@ static BxExecutePtr_t BxResolve64Mod1or2[16] = {
|
||||
&BX_CPU_C::Resolve64Mod1or2Rm15
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve64Mod0Base[16] = {
|
||||
static BxExecutePtr_tR BxResolve64Mod0Base[16] = {
|
||||
&BX_CPU_C::Resolve64Mod0Base0,
|
||||
&BX_CPU_C::Resolve64Mod0Base1,
|
||||
&BX_CPU_C::Resolve64Mod0Base2,
|
||||
@ -202,7 +202,7 @@ static BxExecutePtr_t BxResolve64Mod0Base[16] = {
|
||||
&BX_CPU_C::Resolve64Mod0Base15,
|
||||
};
|
||||
|
||||
static BxExecutePtr_t BxResolve64Mod1or2Base[16] = {
|
||||
static BxExecutePtr_tR BxResolve64Mod1or2Base[16] = {
|
||||
&BX_CPU_C::Resolve64Mod1or2Base0,
|
||||
&BX_CPU_C::Resolve64Mod1or2Base1,
|
||||
&BX_CPU_C::Resolve64Mod1or2Base2,
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: resolve16.cc,v 1.8 2002-09-19 19:17:20 kevinlawton Exp $
|
||||
// $Id: resolve16.cc,v 1.9 2003-03-17 00:41:00 cbothamy Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -35,83 +35,83 @@
|
||||
|
||||
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod0Rm0(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (BX + SI);
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod0Rm1(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (BX + DI);
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod0Rm2(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (BP + SI);
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod0Rm3(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (BP + DI);
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod0Rm4(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) SI;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod0Rm5(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) DI;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod0Rm6(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = i->displ16u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod0Rm7(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) BX;
|
||||
}
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod1or2Rm0(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (BX + SI + (Bit16s) i->displ16u());
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod1or2Rm1(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (BX + DI + (Bit16s) i->displ16u());
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod1or2Rm2(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (BP + SI + (Bit16s) i->displ16u());
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod1or2Rm3(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (BP + DI + (Bit16s) i->displ16u());
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod1or2Rm4(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (SI + (Bit16s) i->displ16u());
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod1or2Rm5(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (DI + (Bit16s) i->displ16u());
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod1or2Rm6(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (BP + (Bit16s) i->displ16u());
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve16Mod1or2Rm7(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = (Bit16u) (BX + (Bit16s) i->displ16u());
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: resolve32.cc,v 1.8 2002-09-19 19:17:20 kevinlawton Exp $
|
||||
// $Id: resolve32.cc,v 1.9 2003-03-17 00:41:00 cbothamy Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -35,81 +35,81 @@
|
||||
|
||||
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Rm0(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = EAX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Rm1(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = ECX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Rm2(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = EDX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Rm3(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = EBX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Rm5(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Rm6(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = ESI;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Rm7(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = EDI;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Rm0(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = EAX + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Rm1(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = ECX + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Rm2(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = EDX + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Rm3(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = EBX + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Rm5(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = EBP + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Rm6(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = ESI + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Rm7(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = EDI + i->displ32u();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Base0(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -120,7 +120,7 @@ BX_CPU_C::Resolve32Mod0Base0(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = EAX + scaled_index;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Base1(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -131,7 +131,7 @@ BX_CPU_C::Resolve32Mod0Base1(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = ECX + scaled_index;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Base2(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -142,7 +142,7 @@ BX_CPU_C::Resolve32Mod0Base2(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = EDX + scaled_index;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Base3(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -153,7 +153,7 @@ BX_CPU_C::Resolve32Mod0Base3(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = EBX + scaled_index;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Base4(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -164,7 +164,7 @@ BX_CPU_C::Resolve32Mod0Base4(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = ESP + scaled_index;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Base5(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -175,7 +175,7 @@ BX_CPU_C::Resolve32Mod0Base5(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = i->displ32u() + scaled_index;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Base6(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -186,7 +186,7 @@ BX_CPU_C::Resolve32Mod0Base6(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = ESI + scaled_index;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod0Base7(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -201,7 +201,7 @@ BX_CPU_C::Resolve32Mod0Base7(bxInstruction_c *i)
|
||||
|
||||
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Base0(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -212,7 +212,7 @@ BX_CPU_C::Resolve32Mod1or2Base0(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = EAX + scaled_index + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Base1(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -223,7 +223,7 @@ BX_CPU_C::Resolve32Mod1or2Base1(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = ECX + scaled_index + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Base2(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -234,7 +234,7 @@ BX_CPU_C::Resolve32Mod1or2Base2(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = EDX + scaled_index + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Base3(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -245,7 +245,7 @@ BX_CPU_C::Resolve32Mod1or2Base3(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = EBX + scaled_index + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Base4(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -256,7 +256,7 @@ BX_CPU_C::Resolve32Mod1or2Base4(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = ESP + scaled_index + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Base5(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -267,7 +267,7 @@ BX_CPU_C::Resolve32Mod1or2Base5(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = EBP + scaled_index + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Base6(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
@ -278,7 +278,7 @@ BX_CPU_C::Resolve32Mod1or2Base6(bxInstruction_c *i)
|
||||
scaled_index = 0;
|
||||
RMAddr(i) = ESI + scaled_index + i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve32Mod1or2Base7(bxInstruction_c *i)
|
||||
{
|
||||
Bit32u scaled_index;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: resolve64.cc,v 1.5 2002-11-19 05:47:43 bdenney Exp $
|
||||
// $Id: resolve64.cc,v 1.6 2003-03-17 00:41:00 cbothamy Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -36,157 +36,157 @@
|
||||
#if BX_SUPPORT_X86_64
|
||||
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm0(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RAX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm1(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RCX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm2(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RDX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm3(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RBX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm5(bxInstruction_c *i)
|
||||
{
|
||||
// eip hasn't been bumped yet when this is called. must choose the saved value.
|
||||
RMAddr(i) = BX_CPU_THIS_PTR prev_eip + i->ilen() + (Bit32s)i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm6(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RSI;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm7(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RDI;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm8(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R8;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm9(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R9;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm10(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R10;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm11(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R11;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm12(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R12;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm13(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R13;
|
||||
}
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm14(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R14;
|
||||
}
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Rm15(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R15;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm0(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RAX + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm1(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RCX + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm2(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RDX + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm3(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RBX + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm5(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RBP + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm6(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RSI + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm7(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = RDI + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm8(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R8 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm9(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R9 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm10(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R10 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm11(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R11 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm12(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R12 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm13(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R13 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm14(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R14 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Rm15(bxInstruction_c *i)
|
||||
{
|
||||
RMAddr(i) = R15 + (Bit32s) i->displ32u();
|
||||
@ -194,7 +194,7 @@ BX_CPU_C::Resolve64Mod1or2Rm15(bxInstruction_c *i)
|
||||
|
||||
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base0(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -202,7 +202,7 @@ BX_CPU_C::Resolve64Mod0Base0(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RAX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base1(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -210,7 +210,7 @@ BX_CPU_C::Resolve64Mod0Base1(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RCX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base2(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -218,7 +218,7 @@ BX_CPU_C::Resolve64Mod0Base2(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RDX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base3(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -226,7 +226,7 @@ BX_CPU_C::Resolve64Mod0Base3(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RBX;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base4(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -234,7 +234,7 @@ BX_CPU_C::Resolve64Mod0Base4(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RSP;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base5(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4) {
|
||||
@ -243,7 +243,7 @@ BX_CPU_C::Resolve64Mod0Base5(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base6(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -251,7 +251,7 @@ BX_CPU_C::Resolve64Mod0Base6(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RSI;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base7(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -259,7 +259,7 @@ BX_CPU_C::Resolve64Mod0Base7(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RDI;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base8(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -267,7 +267,7 @@ BX_CPU_C::Resolve64Mod0Base8(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R8;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base9(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -275,7 +275,7 @@ BX_CPU_C::Resolve64Mod0Base9(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R9;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base10(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -283,7 +283,7 @@ BX_CPU_C::Resolve64Mod0Base10(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R10;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base11(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -291,7 +291,7 @@ BX_CPU_C::Resolve64Mod0Base11(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R11;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base12(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -299,7 +299,7 @@ BX_CPU_C::Resolve64Mod0Base12(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R12;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base13(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -307,7 +307,7 @@ BX_CPU_C::Resolve64Mod0Base13(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R13;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base14(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -315,7 +315,7 @@ BX_CPU_C::Resolve64Mod0Base14(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R14;
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod0Base15(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -327,7 +327,7 @@ BX_CPU_C::Resolve64Mod0Base15(bxInstruction_c *i)
|
||||
|
||||
|
||||
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base0(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -335,7 +335,7 @@ BX_CPU_C::Resolve64Mod1or2Base0(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RAX + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base1(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -343,7 +343,7 @@ BX_CPU_C::Resolve64Mod1or2Base1(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RCX + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base2(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -351,7 +351,7 @@ BX_CPU_C::Resolve64Mod1or2Base2(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RDX + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base3(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -359,7 +359,7 @@ BX_CPU_C::Resolve64Mod1or2Base3(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RBX + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base4(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -367,7 +367,7 @@ BX_CPU_C::Resolve64Mod1or2Base4(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RSP + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base5(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -375,7 +375,7 @@ BX_CPU_C::Resolve64Mod1or2Base5(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RBP + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base6(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -383,7 +383,7 @@ BX_CPU_C::Resolve64Mod1or2Base6(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RSI + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base7(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -391,7 +391,7 @@ BX_CPU_C::Resolve64Mod1or2Base7(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = RDI + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base8(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -399,7 +399,7 @@ BX_CPU_C::Resolve64Mod1or2Base8(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R8 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base9(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -407,7 +407,7 @@ BX_CPU_C::Resolve64Mod1or2Base9(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R9 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base10(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -415,7 +415,7 @@ BX_CPU_C::Resolve64Mod1or2Base10(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R10 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base11(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -423,7 +423,7 @@ BX_CPU_C::Resolve64Mod1or2Base11(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R11 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base12(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -431,7 +431,7 @@ BX_CPU_C::Resolve64Mod1or2Base12(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R12 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base13(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -439,7 +439,7 @@ BX_CPU_C::Resolve64Mod1or2Base13(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R13 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base14(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
@ -447,7 +447,7 @@ BX_CPU_C::Resolve64Mod1or2Base14(bxInstruction_c *i)
|
||||
else
|
||||
RMAddr(i) = R14 + (Bit32s) i->displ32u();
|
||||
}
|
||||
void
|
||||
void BX_CPP_AttrRegparmN(1)
|
||||
BX_CPU_C::Resolve64Mod1or2Base15(bxInstruction_c *i)
|
||||
{
|
||||
if (i->sibIndex() != 4)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: stack16.cc,v 1.13 2002-09-20 23:17:51 kevinlawton Exp $
|
||||
// $Id: stack16.cc,v 1.14 2003-03-17 00:41:00 cbothamy Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -67,7 +67,7 @@ BX_CPU_C::POP_Ew(bxInstruction_c *i)
|
||||
// If used, the value of ESP after the pop is used to calculate
|
||||
// the address.
|
||||
if (i->as32L() && (!i->modC0()) && (i->rm()==4) && (i->sibBase()==4)) {
|
||||
BX_CPU_CALL_METHOD (i->ResolveModrm, (i));
|
||||
BX_CPU_CALL_METHODR (i->ResolveModrm, (i));
|
||||
}
|
||||
write_virtual_word(i->seg(), RMAddr(i), &val16);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: stack32.cc,v 1.16 2002-09-24 00:44:56 kevinlawton Exp $
|
||||
// $Id: stack32.cc,v 1.17 2003-03-17 00:41:01 cbothamy Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -61,7 +61,7 @@ BX_CPU_C::POP_Ed(bxInstruction_c *i)
|
||||
// the address.
|
||||
if (i->as32L() && (!i->modC0()) && (i->rm()==4) && (i->sibBase()==4)) {
|
||||
// call method on BX_CPU_C object
|
||||
BX_CPU_CALL_METHOD (i->ResolveModrm, (i));
|
||||
BX_CPU_CALL_METHODR (i->ResolveModrm, (i));
|
||||
}
|
||||
write_virtual_dword(i->seg(), RMAddr(i), &val32);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: stack64.cc,v 1.10 2003-02-08 05:48:01 ptrumpet Exp $
|
||||
// $Id: stack64.cc,v 1.11 2003-03-17 00:41:01 cbothamy Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -56,7 +56,7 @@ BX_CPU_C::POP_Eq(bxInstruction_c *i)
|
||||
// the address.
|
||||
if (i->as64L() && (!i->modC0()) && (i->rm()==4) && (i->sibBase()==4)) {
|
||||
// call method on BX_CPU_C object
|
||||
BX_CPU_CALL_METHOD (i->ResolveModrm, (i));
|
||||
BX_CPU_CALL_METHODR (i->ResolveModrm, (i));
|
||||
}
|
||||
write_virtual_qword(i->seg(), RMAddr(i), &val64);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user