///|
fn record_instruction_metadata(
buffer : CodeBuffer,
function : @vcode.Function[X64Inst],
allocation : @vcode.Allocation,
frame : X64Frame,
instruction : @vcode.Instruction,
offset : Int32,
sites : @vcode.CodeSites,
) -> Unit {
let metadata = function.instruction_annotations(instruction).unwrap()
if (metadata.trap() is Some(_) || metadata.safepoint() is Some(_)) &&
buffer.position() == offset {
buffer.emit_byte(0x90)
}
sites.record(
function,
allocation,
frame.layout,
instruction,
metadata,
offset,
buffer.position(),
)
}