haskus-system-0.7.0.0: Haskus system programming framework

Safe HaskellSafe
LanguageHaskell2010

Haskus.Arch.X86_64.ISA.Mode

Description

X86 architectures support several operating modes. This module gives information for each mode

Synopsis

Documentation

data X86Mode Source #

X86 and X86-64 operating mode

Constructors

LongMode LongSubMode

x86-64 long mode

LegacyMode LegacySubMode

x86-32 mode

data X86Extension Source #

Constructors

VEX

VEX encoded instruction support

XOP

XOP encoded instruction support

ADX

ADX extension

MMX

MMX

AVX

AVX extension

AVX2

AVX2 extension

SSE

SSE extension

SSE2

SSE2 extension

SSE3

SSE3 extension

SSSE3

SSSE3 extension

SSE4_1

SSE4.1 extension

SSE4_2

SSE4.2 extension

AES

AES extension

BMI1

BMI1 extension

BMI2

BMI2 extension

SMAP

Supervisor Mode Access Prevention (SMAP)

CLFLUSH

CLFLUSH instruction

CX8

CMPXCHG8B instruction

FPU

x87 instructions

CMOV

CMOVs instructions (and FCMOVcc if FPU is set too)

INVPCID

Invalid process-context identifier (INVPCID) extension

MONITOR

MONITOR/MWAIT

PCLMULQDQ

PCLMULQDQ instruction

PRFCHW

PREFETCHW instruction

PREFETCHWT1

PREFETCHWT1 instruction

FSGSBASE

RDFSBASE instruction

OSPKE

RDPKRU instruction

RDRAND

RDRAND instruction

RDSEDD

RDSEED instruction

LSAHF

LAHF/SAHF instruction in 64-bit mode

F16C

VCVTPH2PS/VCVTPS2PH instructions

FMA

Fused multiply-add extension

RTM

Transactional memory

AMD3DNow

AMD 3DNow! instructions

allExtensions :: [X86Extension] Source #

All the X86 extensions

data ModeInfo Source #

Information on a given mode

Constructors

ModeInfo 

Fields

getModeInfo :: X86Mode -> ModeInfo Source #

Return information for the selected mode

is64bitMode :: X86Mode -> Bool Source #

Indicate if it is 64 bit mode

is32bitMode :: X86Mode -> Bool Source #

Indicate if it is 32 bit mode

isLongMode :: X86Mode -> Bool Source #

Indicate if it is Long mode