Title: [156111] trunk/Source/_javascript_Core
Revision
156111
Author
[email protected]
Date
2013-09-19 13:07:25 -0700 (Thu, 19 Sep 2013)

Log Message

JSC: X86 disassembler shows 16, 32 and 64 bit displacements as unsigned
https://bugs.webkit.org/show_bug.cgi?id=121625

Rubber-stamped by Filip Pizlo.

Chenged 16, 32 and 64 bit offsets to be signed.  Kept the original tab indented
spacing to match the rest of the file.

* disassembler/udis86/udis86_syn-att.c:
(gen_operand):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (156110 => 156111)


--- trunk/Source/_javascript_Core/ChangeLog	2013-09-19 19:54:19 UTC (rev 156110)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-09-19 20:07:25 UTC (rev 156111)
@@ -1,3 +1,16 @@
+2013-09-19  Michael Saboff  <[email protected]>
+
+        JSC: X86 disassembler shows 16, 32 and 64 bit displacements as unsigned
+        https://bugs.webkit.org/show_bug.cgi?id=121625
+
+        Rubber-stamped by Filip Pizlo.
+
+        Chenged 16, 32 and 64 bit offsets to be signed.  Kept the original tab indented
+        spacing to match the rest of the file.
+
+        * disassembler/udis86/udis86_syn-att.c:
+        (gen_operand):
+
 2013-09-19  Daniel Bates  <[email protected]>
 
         Remove names of unused arguments from the x86/x86-64 function prototype

Modified: trunk/Source/_javascript_Core/disassembler/udis86/udis86_syn-att.c (156110 => 156111)


--- trunk/Source/_javascript_Core/disassembler/udis86/udis86_syn-att.c	2013-09-19 19:54:19 UTC (rev 156110)
+++ trunk/Source/_javascript_Core/disassembler/udis86/udis86_syn-att.c	2013-09-19 20:07:25 UTC (rev 156111)
@@ -66,14 +66,25 @@
 		if (op->offset == 8) {
 			if (op->lval.sbyte < 0)
 				mkasm(u, "-0x%x", (-op->lval.sbyte) & 0xff);
-			else	mkasm(u, "0x%x", op->lval.sbyte);
+			else
+				mkasm(u, "0x%x", op->lval.sbyte);
 		} 
-		else if (op->offset == 16) 
-			mkasm(u, "0x%x", op->lval.uword);
-		else if (op->offset == 32) 
-                        mkasm(u, "0x%lx", (unsigned long)op->lval.udword);
-		else if (op->offset == 64) 
-			mkasm(u, "0x" FMT64 "x", op->lval.uqword);
+		else if (op->offset == 16) {
+			if (op->lval.sword < 0)
+				mkasm(u, "-0x%x", (-op->lval.sword) & 0xffff);
+			else
+				mkasm(u, "0x%x", op->lval.sword);
+		} else if (op->offset == 32) {
+			if (op->lval.sdword < 0)
+				mkasm(u, "-0x%x", (-op->lval.sdword) & 0xffffffff);
+			else
+				mkasm(u, "0x%x", op->lval.sdword);
+		} else if (op->offset == 64) {
+			if (op->lval.sdword < 0)
+				mkasm(u, "-0x" FMT64 "x", -op->lval.sqword);
+			else
+				mkasm(u, "0x" FMT64 "x", op->lval.sqword);
+		}
 
 		if (op->base)
 			mkasm(u, "(%%%s", ud_reg_tab[op->base - UD_R_AL]);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to