bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/14859] Redundant ASP generated for jecxz


From: kyukhin at gcc dot gnu.org
Subject: [Bug gas/14859] Redundant ASP generated for jecxz
Date: Tue, 20 Nov 2012 06:53:51 +0000

http://sourceware.org/bugzilla/show_bug.cgi?id=14859

--- Comment #1 from Kirill Yukhin <kyukhin at gcc dot gnu.org> 2012-11-20 
06:53:51 UTC ---
Got following problem if jecxz.
Having following test:
        jecxz 1
        jrcxz 1
        je 1

objdump is:
0000000000000000 <.text>:
   0:   67 67 e3 00             addr64 jecxz 0x4
   4:   e3 00                   jrcxz  0x6
   6:   0f 84 00 00 00 00       je     0xc

You can see that ASP is doubled for jecxz.

Seems like a bug.

Possible fix would be:
$ git diff opcodes/i386-opc.tbl
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index f2b2f14..e7001e9 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -389,8 +389,7 @@ jg, 1, 0x7f, None, 1, 0,
Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf,

 // jcxz vs. jecxz is chosen on the basis of the address size prefix.
 jcxz, 1, 0xe3, None, 1, CpuNo64,
JumpByte|Size16|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {
Disp8|Disp16|Disp32 }
-jecxz, 1, 0xe3, None, 1, CpuNo64,
JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {
Disp8|Disp16|Disp32 }
-jecxz, 1, 0x67e3, None, 2, Cpu64,
JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {
Disp8|Disp32|Disp32S }
+jecxz, 1, 0xe3, None, 1, 0,
JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {
Disp8|Disp16|Disp32 }
 jrcxz, 1, 0xe3, None, 1, Cpu64,
JumpByte|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, {
Disp8|Disp32|Disp32S }

 // The loop instructions also use the address size prefix to select

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]