|
|
// Tables for DS: 32-bit instructions
// (ie. no FS:, but DATA: specified)
/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
lds16tbl.c
Abstract: Dispatch tables for instructions with DATA: override and the LOCK prefix. It is used for both DS: and FS: overrides.
Author:
23-Aug-1995 Ori Gershony (t-orig)
Revision History:
--*/
#include <nt.h>
#include <ntrtl.h>
#include <nturtl.h>
#include <windows.h>
#include <stdio.h>
#include "threadst.h"
#include "instr.h"
#include "decoderp.h"
#include "bytefns.h"
#include "wordfns.h"
#include "miscfns.h"
#include "floatfns.h"
pfnDispatchInstruction LockDispatch16[256] = { // 0
LOCKadd_m_r8, LOCKadd_m_r16, LOCKadd_r_m8, LOCKadd_r_m16, bad, bad, bad, bad, // 8
LOCKor_m_r8, LOCKor_m_r16, LOCKor_r_m8, LOCKor_r_m16, bad, bad, bad, LOCKdispatch216, // 10
LOCKadc_m_r8, LOCKadc_m_r16, LOCKadc_r_m8, LOCKadc_r_m16, bad, bad, bad, bad, // 18
LOCKsbb_m_r8, LOCKsbb_m_r16, LOCKsbb_r_m8, LOCKsbb_r_m16, bad, bad, bad, bad, // 20
LOCKand_m_r8, LOCKand_m_r16, LOCKand_r_m8, LOCKand_r_m16, bad, bad, bad, bad, // 28
LOCKsub_m_r8, LOCKsub_m_r16, LOCKsub_r_m8, LOCKsub_r_m16, bad, bad, bad, bad, // 30
LOCKxor_m_r8, LOCKxor_m_r16, LOCKxor_r_m8, LOCKxor_r_m16, bad, bad, bad, bad, // 38
bad, bad, bad, bad, bad, bad, bad, bad, // 40
bad, bad, bad, bad, bad, bad, bad, bad, // 48
bad, bad, bad, bad, bad, bad, bad, bad, // 50
bad, bad, bad, bad, bad, bad, bad, bad, // 58
bad, bad, bad, bad, bad, bad, bad, bad, // 60
bad, bad, bad, bad, bad, bad, bad, bad, // 68
bad, bad, bad, bad, bad, bad, bad, bad, // 70
bad, bad, bad, bad, bad, bad, bad, bad, // 78
bad, bad, bad, bad, bad, bad, bad, bad, // 80
LOCKGROUP_18, LOCKGROUP_116, bad, LOCKGROUP_1WS16, bad, bad, xchg_r_m8, xchg_r_m16, // 88
bad, bad, bad, bad, bad, bad, bad, bad, // 90
bad, bad, bad, bad, bad, bad, bad, bad, // 98
bad, bad, bad, bad, bad, bad, bad, bad, // a0
bad, bad, bad, bad, bad, bad, bad, bad, // a8
bad, bad, bad, bad, bad, bad, bad, bad, // b0
bad, bad, bad, bad, bad, bad, bad, bad, // b8
bad, bad, bad, bad, bad, bad, bad, bad, // c0
bad, bad, bad, bad, bad, bad, bad, bad, // c8
bad, bad, bad, bad, bad, bad, bad, bad, // d0
bad, bad, bad, bad, bad, bad, bad, bad, // d8
bad, bad, bad, bad, bad, bad, bad, bad, // e0
bad, bad, bad, bad, bad, bad, bad, bad, // e8
bad, bad, bad, bad, bad, bad, bad, bad, // f0
bad, bad, bad, bad, bad, bad, LOCKGROUP_38, LOCKGROUP_316, // f8
bad, bad, bad, bad, bad, bad, bad, LOCKGROUP_516, };
pfnDispatchInstruction LockDispatch216[256] = { // 0
bad, bad, bad, bad, bad, bad, bad, bad, // 8
bad, bad, bad, bad, bad, bad, bad, bad, // 10
bad, bad, bad, bad, bad, bad, bad, bad, // 18
bad, bad, bad, bad, bad, bad, bad, bad, // 20
bad, bad, bad, bad, bad, bad, bad, bad, // 28
bad, bad, bad, bad, bad, bad, bad, bad, // 30
bad, bad, bad, bad, bad, bad, bad, bad, // 38
bad, bad, bad, bad, bad, bad, bad, bad, // 40
bad, bad, bad, bad, bad, bad, bad, bad, // 48
bad, bad, bad, bad, bad, bad, bad, bad, // 50
bad, bad, bad, bad, bad, bad, bad, bad, // 58
bad, bad, bad, bad, bad, bad, bad, bad, // 60
bad, bad, bad, bad, bad, bad, bad, bad, // 68
bad, bad, bad, bad, bad, bad, bad, bad, // 70
bad, bad, bad, bad, bad, bad, bad, bad, // 78
bad, bad, bad, bad, bad, bad, bad, bad, // 80
bad, bad, bad, bad, bad, bad, bad, bad, // 88
bad, bad, bad, bad, bad, bad, bad, bad, // 90
bad, bad, bad, bad, bad, bad, bad, bad, // 98
bad, bad, bad, bad, bad, bad, bad, bad, // a0
bad, bad, bad, bad, bad, bad, bad, bad, // a8
bad, bad, bad, LOCKbts_m_r16, bad, bad, bad, bad, // b0
LOCKcmpxchg_m_r8, LOCKcmpxchg_m_r16, bad, LOCKbtr_m_r16, bad, bad, bad, bad, // b8
bad, bad, LOCKGROUP_816, LOCKbtc_m_r16, bad, bad, bad, bad, // c0
LOCKxadd_m_r8, LOCKxadd_m_r16, bad, bad, bad, bad, bad, bad, // c8
bad, bad, bad, bad, bad, bad, bad, bad, // d0
bad, bad, bad, bad, bad, bad, bad, bad, // d8
bad, bad, bad, bad, bad, bad, bad, bad, // e0
bad, bad, bad, bad, bad, bad, bad, bad, // e8
bad, bad, bad, bad, bad, bad, bad, bad, // f0
bad, bad, bad, bad, bad, bad, bad, bad, // f8
bad, bad, bad, bad, bad, bad, bad, bad };
|