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