-
Notifications
You must be signed in to change notification settings - Fork 42
Open
Description
Hello,
Thanks for sharing this great work!
While reading the code of the disassembler, I stumbled upon these lines in function get_str_uop_xxx_ustate_special_imms:
uCodeDisasm/glm_ucode_disasm/glm_ucode_disasm.py
Lines 543 to 547 in a69515f
| str_special_imms = () | |
| if is_src0_imm: | |
| str_special_imms += "0x%08x" % special_imm, | |
| str_special_imms = () |
The variable str_special_imms is reset after being set to str_special_imms += "0x%08x" % special_imm,. This seems to be either dead code or a bug in the disassembler.
When removing the second str_special_imms = (), the output changes:
--- a/ucode/ucode_glm.txt
+++ b/ucode/ucode_glm.txt
@@ -485,7 +485,7 @@ U013e: 000e0f000200 WRMSLOOPCTRFBR(0x0000000f)
018000ca SEQW URET0
------------------------------------------------------------------------------------
-U0140: 000b01838208 tmp8:= UPDATEUSTATE(!0x04)
+U0140: 000b01838208 tmp8:= UPDATEUSTATE(0x00000001, !0x04)
U0141: 000cec8fe288 LFNCEMARK-> tmp14:= SAVEUIP(0x01, U43ec)
04875240 SEQW GOTO U0752
------------------------------------------------------------------------------------
@@ -1174,7 +1174,7 @@ U0306: 386a4e400270 SYNCFULL-> BTUJB_DIRECT_NOTTAKEN(tmp0, 0x00000005, uret0
------------------------------------------------------------------------------------
U0308: 1c1000e33144 tmp3:= LDZX_DSZN_ASZ32_SC1(DS, r64base, r64idx, IMM_MACRO_ALIAS_DISPLACEMENT, mode=0x18)
-U0309: 000b03838208 LFNCEMARK-> tmp8:= UPDATEUSTATE(!0x0c)
+U0309: 000b03838208 LFNCEMARK-> tmp8:= UPDATEUSTATE(0x00000003, !0x0c)
U030a: 000cec8fe288 tmp14:= SAVEUIP(0x01, U43ec)
04859580 SEQW GOTO U0595
------------------------------------------------------------------------------------
...I do not know whether the expected output of the disassembler is the current one or the new one, so I am opening this issue in order to make you aware of a possible bug. Feel free to close this issue if this is not a bug.
jcezarms and colejohnson66
Metadata
Metadata
Assignees
Labels
No labels