x64: use constant pool for u64 constants rather than movabs. (#4088)
* Allow emitting u64 constants into constant pool. * Use constant pool for constants on x64 that do not fit in a simm32 and are needed as a RegMem or RegMemImm. * Fix rip-relative addressing bug in pinsrd emission.
This commit is contained in:
@@ -539,6 +539,12 @@ macro_rules! isle_prelude_methods {
|
||||
let offset: i32 = offset.into();
|
||||
offset as u32
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn emit_u64_le_const(&mut self, value: u64) -> VCodeConstant {
|
||||
let data = VCodeConstantData::U64(value.to_le_bytes());
|
||||
self.lower_ctx.use_constant(data)
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user