|
|
/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
lds32tbl.c
Abstract: Dispatch table for 32bit instructions with the LOCK prefix.
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 "dwordfns.h"
#include "miscfns.h"
#include "floatfns.h"
pfnDispatchInstruction LockDispatch32[256] = { // 0
LOCKadd_m_r8, LOCKadd_m_r32, LOCKadd_r_m8, LOCKadd_r_m32, bad, bad, bad, bad, // 8
LOCKor_m_r8, LOCKor_m_r32, LOCKor_r_m8, LOCKor_r_m32, bad, bad, bad, LOCKdispatch232, // 10
LOCKadc_m_r8, LOCKadc_m_r32, LOCKadc_r_m8, LOCKadc_r_m32, bad, bad, bad, bad, // 18
LOCKsbb_m_r8, LOCKsbb_m_r32, LOCKsbb_r_m8, LOCKsbb_r_m32, bad, bad, bad, bad, // 20
LOCKand_m_r8, LOCKand_m_r32, LOCKand_r_m8, LOCKand_r_m32, bad, bad, bad, bad, // 28
LOCKsub_m_r8, LOCKsub_m_r32, LOCKsub_r_m8, LOCKsub_r_m32, bad, bad, bad, bad, // 30
LOCKxor_m_r8, LOCKxor_m_r32, LOCKxor_r_m8, LOCKxor_r_m32, 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_132, bad, LOCKGROUP_1WS32, bad, bad, xchg_r_m8, xchg_r_m32, // 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_332, // f8
bad, bad, bad, bad, bad, bad, bad, LOCKGROUP_532, };
pfnDispatchInstruction LockDispatch232[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_r32, bad, bad, bad, bad, // b0
LOCKcmpxchg_m_r8, LOCKcmpxchg_m_r32, bad, LOCKbtr_m_r32, bad, bad, bad, bad, // b8
bad, bad, LOCKGROUP_832, LOCKbtc_m_r32, bad, bad, bad, bad, // c0
LOCKxadd_m_r8, LOCKxadd_m_r32, bad, bad, bad, bad, bad, LOCKcmpxchg8b, // 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 };
|