<?xml version="1.0" encoding="utf-8"?> <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> <Type Name="Luau::CodeGen::X64::RegisterX64"> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::none && index == 16">noreg</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::none && index == 0">rip</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::byte && index == 0">al</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::byte && index == 1">cl</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::byte && index == 2">dl</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::byte && index == 3">bl</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::dword && index == 0">eax</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::dword && index == 1">ecx</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::dword && index == 2">edx</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::dword && index == 3">ebx</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::dword && index == 4">esp</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::dword && index == 5">ebp</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::dword && index == 6">esi</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::dword && index == 7">edi</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::dword && index >= 8">e{(int)index,d}d</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::qword && index == 0">rax</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::qword && index == 1">rcx</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::qword && index == 2">rdx</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::qword && index == 3">rbx</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::qword && index == 4">rsp</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::qword && index == 5">rbp</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::qword && index == 6">rsi</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::qword && index == 7">rdi</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::qword && index >= 8">r{(int)index,d}</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::xmmword">xmm{(int)index,d}</DisplayString> <DisplayString Condition="size == Luau::CodeGen::X64::SizeX64::ymmword">ymm{(int)index,d}</DisplayString> </Type> <Type Name="Luau::CodeGen::X64::OperandX64"> <DisplayString Condition="cat == 0">{base}</DisplayString> <DisplayString Condition="cat == 1 && base.size != 0 && index.size != 0">{memSize,en} ptr[{base} + {index}*{(int)scale,d} + {imm}]</DisplayString> <DisplayString Condition="cat == 1 && index.size != 0">{memSize,en} ptr[{index}*{(int)scale,d} + {imm}]</DisplayString> <DisplayString Condition="cat == 1 && base.size != 0">{memSize,en} ptr[{base} + {imm}]</DisplayString> <DisplayString Condition="cat == 1 && base.index == 0">{memSize,en} ptr[{base} + {imm}]</DisplayString> <DisplayString Condition="cat == 1">{memSize,en} ptr[{imm}]</DisplayString> <DisplayString Condition="cat == 2">{imm}</DisplayString> <Expand> <ExpandedItem Condition="cat == 0">base</ExpandedItem> <ExpandedItem Condition="cat == 2">imm</ExpandedItem> <Item Condition="cat == 1" Name="memSize">memSize</Item> <Item Condition="cat == 1" Name="base">base</Item> <Item Condition="cat == 1" Name="index">index</Item> <Item Condition="cat == 1" Name="scale">scale</Item> <Item Condition="cat == 1" Name="imm">imm</Item> </Expand> </Type> <Type Name="Luau::CodeGen::IrOp"> <DisplayString Condition="kind == IrOpKind::None">none</DisplayString> <DisplayString Condition="kind == IrOpKind::VmReg && (index >> 8) != 0">R{index&0xff}-v{index >> 8}</DisplayString> <DisplayString Condition="kind == IrOpKind::VmReg">R{index&0xff}</DisplayString> <DisplayString Condition="kind == IrOpKind::VmConst">K{index}</DisplayString> <DisplayString Condition="kind == IrOpKind::VmUpvalue">UP{index}</DisplayString> <DisplayString Condition="kind == IrOpKind::Inst">%{index}</DisplayString> </Type> </AutoVisualizer>