@@ -74,10 +74,10 @@ pub fn printInstruction(dis: Disassemble, inst: aarch64.encoding.Instruction, wr
7474 dis .operands_separator ,
7575 imm12 ,
7676 });
77- return if (! elide_shift ) writer .print ("{s}{f} #{s }" , .{
77+ return if (! elide_shift ) writer .print ("{s}{f} #{t }" , .{
7878 dis .operands_separator ,
7979 fmtCase (.lsl , dis .case ),
80- @tagName ( sh ) ,
80+ sh ,
8181 });
8282 },
8383 .add_subtract_immediate_with_tags = > | add_subtract_immediate_with_tags | {
@@ -176,10 +176,10 @@ pub fn printInstruction(dis: Disassemble, inst: aarch64.encoding.Instruction, wr
176176 dis .operands_separator ,
177177 imm16 ,
178178 });
179- return if (! elide_shift ) writer .print ("{s}{f} #{s }" , .{
179+ return if (! elide_shift ) writer .print ("{s}{f} #{t }" , .{
180180 dis .operands_separator ,
181181 fmtCase (.lsl , dis .case ),
182- @tagName ( hw ) ,
182+ hw ,
183183 });
184184 },
185185 .bitfield = > | bitfield | {
@@ -833,8 +833,36 @@ pub fn printInstruction(dis: Disassemble, inst: aarch64.encoding.Instruction, wr
833833 },
834834 .rotate_right_into_flags = > {},
835835 .evaluate_into_flags = > {},
836- .conditional_compare_register = > {},
837- .conditional_compare_immediate = > {},
836+ .conditional_compare_register = > | conditional_compare_register | {
837+ const group = conditional_compare_register .group ;
838+ const sf = group .sf ;
839+ return writer .print ("{f}{s}{f}{s}{f}{s}#0x{x}{s}{f}" , .{
840+ fmtCase (group .op , dis .case ),
841+ dis .mnemonic_operands_separator ,
842+ group .Rn .decode (.{}).general (sf ).fmtCase (dis .case ),
843+ dis .operands_separator ,
844+ group .Rm .decode (.{}).general (sf ).fmtCase (dis .case ),
845+ dis .operands_separator ,
846+ @as (u4 , @bitCast (group .nzcv )),
847+ dis .operands_separator ,
848+ fmtCase (group .cond , dis .case ),
849+ });
850+ },
851+ .conditional_compare_immediate = > | conditional_compare_immediate | {
852+ const group = conditional_compare_immediate .group ;
853+ const sf = group .sf ;
854+ return writer .print ("{f}{s}{f}{s}#0x{x}{s}#0x{x}{s}{f}" , .{
855+ fmtCase (group .op , dis .case ),
856+ dis .mnemonic_operands_separator ,
857+ group .Rn .decode (.{}).general (sf ).fmtCase (dis .case ),
858+ dis .operands_separator ,
859+ group .imm5 ,
860+ dis .operands_separator ,
861+ @as (u4 , @bitCast (group .nzcv )),
862+ dis .operands_separator ,
863+ fmtCase (group .cond , dis .case ),
864+ });
865+ },
838866 .conditional_select = > | conditional_select | {
839867 const decoded = conditional_select .decode ();
840868 if (decoded == .unallocated ) break :unallocated ;
0 commit comments