DisasmInternal.h revision 5306c362f7661494004605da6b75b32ed98dad4d
77b1a2d8b5dbe2c0b5200794914239fee3c8ee5dvboxsync * VBox disassembler:
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync * Internal header
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync * Copyright (C) 2006-2007 Oracle Corporation
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync * available from http://www.virtualbox.org. This file is free software;
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * you can redistribute it and/or modify it under the terms of the GNU
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * General Public License (GPL) as published by the Free Software
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncunsigned ParseInstruction(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, PDISCPUSTATE pCpu);
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncunsigned ParseIllegal(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseModRM(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseModRM_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned UseModRM(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmByte(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmByte_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmByteSX(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmByteSX_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmBRel(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmBRel_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmUshort(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmUshort_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmV(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmV_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
7766bf675357fd940d8c49e69a5d72dc6eaa6be4vboxsyncunsigned ParseImmVRel(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
7766bf675357fd940d8c49e69a5d72dc6eaa6be4vboxsyncunsigned ParseImmVRel_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmZ(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmZ_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
bbede9c189def47a9880f0ffb03c0c230c774185vboxsyncunsigned ParseImmAddr(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
bbede9c189def47a9880f0ffb03c0c230c774185vboxsyncunsigned ParseImmAddr_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
bbede9c189def47a9880f0ffb03c0c230c774185vboxsyncunsigned ParseImmAddrF(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
bbede9c189def47a9880f0ffb03c0c230c774185vboxsyncunsigned ParseImmAddrF_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseFixedReg(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
5341459ca931b65de60b5af2a4cba6836b6b45cavboxsyncunsigned ParseImmUlong(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncunsigned ParseImmUlong_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncunsigned ParseImmQword(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncunsigned ParseImmQword_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncunsigned ParseTwoByteEsc(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncunsigned ParseThreeByteEsc4(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncunsigned ParseThreeByteEsc5(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncunsigned ParseImmGrpl(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncunsigned ParseShiftGrp2(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncunsigned ParseGrp3(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncunsigned ParseGrp4(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncunsigned ParseGrp5(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncunsigned Parse3DNow(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
9496f2d398b49813176939d7a339ae513d5175efvboxsyncunsigned ParseGrp6(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncunsigned ParseGrp7(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
9496f2d398b49813176939d7a339ae513d5175efvboxsyncunsigned ParseGrp8(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncunsigned ParseGrp9(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
9496f2d398b49813176939d7a339ae513d5175efvboxsyncunsigned ParseGrp10(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
a0240ff4f7663045c848fdbc192ea3d4d9f70a11vboxsyncunsigned ParseGrp12(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
9496f2d398b49813176939d7a339ae513d5175efvboxsyncunsigned ParseGrp13(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
21029597fc4b76d0db0c9542daee201447281781vboxsyncunsigned ParseGrp14(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
21029597fc4b76d0db0c9542daee201447281781vboxsyncunsigned ParseGrp15(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncunsigned ParseGrp16(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsyncunsigned ParseModFence(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
9496f2d398b49813176939d7a339ae513d5175efvboxsyncunsigned ParseNopPause(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
9496f2d398b49813176939d7a339ae513d5175efvboxsyncunsigned ParseYv(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
9496f2d398b49813176939d7a339ae513d5175efvboxsyncunsigned ParseYb(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncunsigned ParseXv(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsyncunsigned ParseXb(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
51fe8789a74f6c118894aaa12eb69ec155386dbdvboxsync/* Floating point parsing */
9496f2d398b49813176939d7a339ae513d5175efvboxsyncunsigned ParseEscFP(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu);
16a9adc14900ca18e6909679a579f6833425e030vboxsync/* Disassembler printf */
16a9adc14900ca18e6909679a579f6833425e030vboxsyncvoid disasmSprintf(char *pszOutput, RTUINTPTR pu8Instruction, PDISCPUSTATE pCpu, POP_PARAMETER pParam1, POP_PARAMETER pParam2, POP_PARAMETER pParam3 = NULL);
16a9adc14900ca18e6909679a579f6833425e030vboxsyncvoid disasmGetPtrString(PDISCPUSTATE pCpu, PCOPCODE pOp, POP_PARAMETER pParam);
16a9adc14900ca18e6909679a579f6833425e030vboxsyncvoid disasmModRMReg(PDISCPUSTATE pCpu, PCOPCODE pOp, unsigned idx, POP_PARAMETER pParam, int fRegAddr);
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsyncvoid disasmModRMReg16(PDISCPUSTATE pCpu, PCOPCODE pOp, unsigned idx, POP_PARAMETER pParam);
9c149a2789022f5011e88fb62f02a1cc8068e88fvboxsyncvoid disasmModRMSReg(PDISCPUSTATE pCpu, PCOPCODE pOp, unsigned idx, POP_PARAMETER pParam);
d80c85a1bc7317da7d0cd1254fae6a20db039c8cvboxsync/* Read functions */
16a9adc14900ca18e6909679a579f6833425e030vboxsyncuint8_t DISReadByte(PDISCPUSTATE pCpu, RTUINTPTR pAddress);
16a9adc14900ca18e6909679a579f6833425e030vboxsyncuint16_t DISReadWord(PDISCPUSTATE pCpu, RTUINTPTR pAddress);
16a9adc14900ca18e6909679a579f6833425e030vboxsyncuint32_t DISReadDWord(PDISCPUSTATE pCpu, RTUINTPTR pAddress);
16a9adc14900ca18e6909679a579f6833425e030vboxsyncuint64_t DISReadQWord(PDISCPUSTATE pCpu, RTUINTPTR pAddress);
16a9adc14900ca18e6909679a579f6833425e030vboxsyncsize_t disFormatBytes(PCDISCPUSTATE pCpu, char *pszDst, size_t cchDst, uint32_t fFlags);
16a9adc14900ca18e6909679a579f6833425e030vboxsync#endif /* !___DisasmInternal_h___ */