Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/cranelift/assembler-x64/meta/src/instructions/misc.rs
1693 views
1
use crate::dsl::{Customization::*, Feature::*, Inst, Location::*};
2
use crate::dsl::{fmt, inst, r, rex, sxl, w};
3
4
#[rustfmt::skip] // Keeps instructions on a single line.
5
pub fn list() -> Vec<Inst> {
6
vec![
7
inst("mfence", fmt("ZO", []), rex([0x0f, 0xae, 0xf0]), (_64b | compat) & sse2),
8
inst("sfence", fmt("ZO", []), rex([0x0f, 0xae, 0xf8]), _64b | compat),
9
inst("lfence", fmt("ZO", []), rex([0x0f, 0xae, 0xe8]), (_64b | compat) & sse2),
10
11
inst("hlt", fmt("ZO", []), rex([0xf4]), _64b | compat),
12
inst("ud2", fmt("ZO", []), rex([0x0f, 0x0b]), _64b | compat).has_trap(),
13
inst("int3", fmt("ZO", []), rex([0xcc]), _64b | compat),
14
15
inst("retq", fmt("ZO", []), rex([0xC3]), _64b | compat),
16
inst("retq", fmt("I", [r(imm16)]), rex([0xC2]).iw(), _64b | compat),
17
18
inst("leaw", fmt("RM", [w(r16), r(m16)]), rex([0x66, 0x8D]).r(), _64b | compat),
19
inst("leal", fmt("RM", [w(r32), r(m32)]), rex([0x8D]).r(), _64b | compat),
20
inst("leaq", fmt("RM", [w(r64), r(m64)]), rex([0x8D]).w().r(), _64b),
21
22
inst("callq", fmt("D", [r(sxl(imm32))]), rex([0xE8]).id(), _64b | compat).custom(Display),
23
inst("callq", fmt("M", [r(rm64)]), rex([0xFF]).digit(2), _64b).custom(Display),
24
]
25
}
26
27