Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/cranelift/assembler-x64/meta/src/instructions/stack.rs
1693 views
1
use crate::dsl::{Feature::*, Inst, Location::*};
2
use crate::dsl::{fmt, inst, r, rex, sxq, w};
3
4
#[rustfmt::skip] // Keeps instructions on a single line.
5
pub fn list() -> Vec<Inst> {
6
vec![
7
inst("popw", fmt("M", [w(rm16)]), rex([0x66, 0x8F]).digit(0), _64b | compat),
8
inst("popq", fmt("M", [w(rm64)]), rex(0x8F).digit(0), _64b),
9
inst("popw", fmt("O", [w(r16)]), rex([0x66, 0x58]).rw(), _64b | compat),
10
inst("popq", fmt("O", [w(r64)]), rex(0x58).ro(), _64b),
11
inst("pushw", fmt("M", [r(rm16)]), rex([0x66, 0xFF]).digit(6), _64b | compat),
12
inst("pushq", fmt("M", [r(rm64)]), rex(0xFF).digit(6), _64b),
13
inst("pushw", fmt("O", [r(r16)]), rex([0x66, 0x50]).rw(), _64b | compat),
14
inst("pushq", fmt("O", [r(r64)]), rex(0x50).ro(), _64b),
15
inst("pushq", fmt("I8", [r(sxq(imm8))]), rex(0x6A).ib(), _64b | compat),
16
inst("pushw", fmt("I16", [r(imm16)]), rex([0x66, 0x68]).iw(), _64b | compat),
17
inst("pushq", fmt("I32", [r(sxq(imm32))]), rex(0x68).id(), _64b | compat),
18
]
19
}
20
21