ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/src/beaengine/Includes/instr_set/opcodes_Grp8.c
Revision: 984
Committed: Sun Mar 16 23:35:10 2014 UTC (11 years, 6 months ago) by alloc
Content type: text/x-csrc
File size: 2918 byte(s)
Log Message:
Daodan: TV code

File Contents

# Content
1 /* Copyright 2006-2009, BeatriX
2 * File coded by BeatriX
3 *
4 * This file is part of BeaEngine.
5 *
6 * BeaEngine is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * BeaEngine is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with BeaEngine. If not, see <http://www.gnu.org/licenses/>. */
18
19 /* ====================================================================
20 * 0fbah
21 * ==================================================================== */
22 void __bea_callspec__ G8_EvIb(PDISASM pMyDisasm)
23 {
24 GV.REGOPCODE = ((*((UInt8*)(UIntPtr) (GV.EIP_+1))) >> 3) & 0x7;
25 EvIb(pMyDisasm);
26 if (GV.REGOPCODE == 4) {
27 (*pMyDisasm).Instruction.Category = GENERAL_PURPOSE_INSTRUCTION+BIT_UInt8;
28 #ifndef BEA_LIGHT_DISASSEMBLY
29 (void) strcpy ((*pMyDisasm).Instruction.Mnemonic, "bt ");
30 #endif
31 (*pMyDisasm).Argument1.AccessMode = READ;
32 FillFlags(pMyDisasm, 11);
33 }
34 else if (GV.REGOPCODE == 5) {
35 if ((*pMyDisasm).Prefix.LockPrefix == InvalidPrefix) {
36 (*pMyDisasm).Prefix.LockPrefix = InUsePrefix;
37 }
38 (*pMyDisasm).Instruction.Category = GENERAL_PURPOSE_INSTRUCTION+BIT_UInt8;
39 #ifndef BEA_LIGHT_DISASSEMBLY
40 (void) strcpy ((*pMyDisasm).Instruction.Mnemonic, "bts ");
41 #endif
42 (*pMyDisasm).Argument1.AccessMode = READ;
43 FillFlags(pMyDisasm, 11);
44 }
45 else if (GV.REGOPCODE == 6) {
46 if ((*pMyDisasm).Prefix.LockPrefix == InvalidPrefix) {
47 (*pMyDisasm).Prefix.LockPrefix = InUsePrefix;
48 }
49 (*pMyDisasm).Instruction.Category = GENERAL_PURPOSE_INSTRUCTION+BIT_UInt8;
50 #ifndef BEA_LIGHT_DISASSEMBLY
51 (void) strcpy ((*pMyDisasm).Instruction.Mnemonic, "btr ");
52 #endif
53 (*pMyDisasm).Argument1.AccessMode = READ;
54 FillFlags(pMyDisasm, 11);
55 }
56 else if (GV.REGOPCODE == 7) {
57 if ((*pMyDisasm).Prefix.LockPrefix == InvalidPrefix) {
58 (*pMyDisasm).Prefix.LockPrefix = InUsePrefix;
59 }
60 (*pMyDisasm).Instruction.Category = GENERAL_PURPOSE_INSTRUCTION+BIT_UInt8;
61 #ifndef BEA_LIGHT_DISASSEMBLY
62 (void) strcpy ((*pMyDisasm).Instruction.Mnemonic, "btc ");
63 #endif
64 (*pMyDisasm).Argument1.AccessMode = READ;
65 FillFlags(pMyDisasm, 11);
66 }
67 else {
68 FailDecode(pMyDisasm);
69 }
70 }