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]);