summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Wu <[email protected]>2024-01-25 15:29:42 -0500
committerAlan Wu <[email protected]>2024-01-25 16:17:03 -0500
commitf0224adf2f6ec5c1a9c77001bfbfdae9eb93f5fc (patch)
tree0c5d9c1b2b2ac5347fa9b723744aeeb7b36ba350
parente452caac10c651a2b7de5fdc076b7b44a66785d5 (diff)
YJIT: Assert lea source operand type
-rw-r--r--yjit/src/asm/x86_64/mod.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/yjit/src/asm/x86_64/mod.rs b/yjit/src/asm/x86_64/mod.rs
index 20ac13f09c..fbbfa714d8 100644
--- a/yjit/src/asm/x86_64/mod.rs
+++ b/yjit/src/asm/x86_64/mod.rs
@@ -952,6 +952,7 @@ pub fn jmp32(cb: &mut CodeBlock, offset: i32) {
pub fn lea(cb: &mut CodeBlock, dst: X86Opnd, src: X86Opnd) {
if let X86Opnd::Reg(reg) = dst {
assert!(reg.num_bits == 64);
+ assert!(matches!(src, X86Opnd::Mem(_) | X86Opnd::IPRel(_)));
write_rm(cb, false, true, dst, src, None, &[0x8d]);
} else {
unreachable!();