]> granicus.if.org Git - yasm/commitdiff
x86_bc_insn_expand(): Don't require ea/imm to be abs to expand, and check
authorPeter Johnson <peter@tortall.net>
Sun, 11 Jun 2006 20:30:46 +0000 (20:30 -0000)
committerPeter Johnson <peter@tortall.net>
Sun, 11 Jun 2006 20:30:46 +0000 (20:30 -0000)
span ID.
dwarf32_testhd.hex: New optimizer downsizes .text by 4 bytes, update.

svn path=/branches/new-optimizer/; revision=1570

modules/arch/x86/x86bc.c
modules/dbgfmts/dwarf2/tests/pass32/dwarf32_testhd.hex

index 3c1766fcb9eb8b3feec419650e588fa24fc8eabd..1f5be62ba926b533ceb9609534b318f948a28016 100644 (file)
@@ -607,7 +607,7 @@ x86_bc_insn_expand(yasm_bytecode *bc, int span, long old_val, long new_val,
     yasm_effaddr *ea = &x86_ea->ea;
     yasm_immval *imm = insn->imm;
 
-    if (ea && ea->disp.abs) {
+    if (ea && span == 1) {
        /* Change displacement length into word-sized */
        if (ea->disp.size == 0) {
            ea->disp.size = (insn->common.addrsize == 16) ? 16 : 32;
@@ -618,7 +618,7 @@ x86_bc_insn_expand(yasm_bytecode *bc, int span, long old_val, long new_val,
        }
     }
 
-    if (imm && imm->val.abs) {
+    if (imm && span == 2) {
        if (insn->postop == X86_POSTOP_SIGNEXT_IMM8) {
            /* Update bc->len for new opcode and immediate size */
            bc->len -= insn->opcode.len;
index 3f19733061cf831f26f0a410e2277a556d8751c3..c145c87f5e1b9a4cde545cc0b442353ba6d844a6 100644 (file)
@@ -109,7 +109,7 @@ b8
 00 
 00 
 e9 
-ad 
+a9 
 00 
 00 
 00 
@@ -138,7 +138,7 @@ c4
 85 
 c0 
 75 
-34 
+30 
 83 
 ec 
 04 
@@ -166,14 +166,10 @@ b8
 00 
 00 
 00 
-e9 
-73 
-00 
-00 
-00 
-8d 
-76 
-00 
+eb 
+72 
+89 
+f6 
 83 
 ec 
 08 
@@ -358,7 +354,7 @@ c3
 56 
 00 
 00 
-75 
+71 
 00 
 00 
 00 
@@ -366,7 +362,7 @@ c3
 4b 
 00 
 00 
-7a 
+76 
 00 
 00 
 00 
@@ -374,7 +370,7 @@ c3
 58 
 00 
 00 
-86 
+82 
 00 
 00 
 00 
@@ -382,7 +378,7 @@ c3
 59 
 00 
 00 
-94 
+90 
 00 
 00 
 00 
@@ -390,7 +386,7 @@ c3
 5a 
 00 
 00 
-a8 
+a4 
 00 
 00 
 00 
@@ -398,7 +394,7 @@ a8
 5b 
 00 
 00 
-ba 
+b6 
 00 
 00 
 00 
@@ -406,7 +402,7 @@ ba
 4b 
 00 
 00 
-c0 
+bc 
 00 
 00 
 00 
@@ -414,7 +410,7 @@ c0
 55 
 00 
 00 
-c5 
+c1 
 00 
 00 
 00 
@@ -422,7 +418,7 @@ c5
 56 
 00 
 00 
-d5 
+d1 
 00 
 00 
 00 
@@ -718,7 +714,7 @@ d5
 00 
 00 
 00 
-e7 
+e3 
 00 
 00 
 00 
@@ -1413,7 +1409,7 @@ d0
 00 
 00 
 00 
-e7 
+e3 
 00 
 00 
 00 
@@ -2054,7 +2050,7 @@ af
 75 
 08 
 59 
-cc 
+94 
 02 
 22 
 14 
@@ -2186,7 +2182,7 @@ ff
 00 
 00 
 00 
-e7 
+e3 
 00 
 00 
 00 
@@ -2294,7 +2290,7 @@ b2
 00 
 00 
 00 
-e7 
+e3 
 00 
 00 
 00 
@@ -4418,7 +4414,7 @@ e8
 01 
 00 
 00 
-e7 
+e3 
 00 
 00 
 00 
@@ -4546,7 +4542,7 @@ e2
 00 
 00 
 00 
-e7 
+e3 
 00 
 00 
 00 
@@ -4562,7 +4558,7 @@ de
 00 
 00 
 00 
-d0 
+cc 
 00 
 00 
 00 
@@ -4578,7 +4574,7 @@ da
 00 
 00 
 00 
-b3 
+af 
 00 
 00 
 00 
@@ -4594,7 +4590,7 @@ d6
 00 
 00 
 00 
-a3 
+9f 
 00 
 00 
 00 
@@ -4610,7 +4606,7 @@ d2
 00 
 00 
 00 
-70 
+6c 
 00 
 00 
 00 
@@ -4626,7 +4622,7 @@ ce
 00 
 00 
 00 
-81 
+7d 
 00 
 00 
 00 
@@ -4642,7 +4638,7 @@ ca
 00 
 00 
 00 
-e0 
+dc 
 00 
 00 
 00 
@@ -4998,7 +4994,7 @@ a3
 00 
 00 
 00 
-e7 
+e3 
 00 
 00 
 00 
@@ -5174,6 +5170,10 @@ e7
 00 
 00 
 00 
+00 
+00 
+00 
+00 
 ee 
 00 
 00 
@@ -5190,7 +5190,7 @@ ee
 00 
 00 
 00 
-dc 
+d8 
 0a 
 00 
 00 
@@ -5230,7 +5230,7 @@ de
 00 
 00 
 00 
-d4 
+d0 
 0b 
 00 
 00 
@@ -5270,7 +5270,7 @@ e6
 00 
 00 
 00 
-40 
+3c 
 0e 
 00 
 00 
@@ -5314,7 +5314,7 @@ d0
 00 
 00 
 00 
-e7 
+e3 
 00 
 00 
 00 
@@ -5350,7 +5350,7 @@ e7
 00 
 00 
 00 
-28 
+24 
 01 
 00 
 00 
@@ -5390,7 +5390,7 @@ e7
 00 
 00 
 00 
-b0 
+ac 
 01 
 00 
 00 
@@ -5430,7 +5430,7 @@ b0
 00 
 00 
 00 
-c0 
+bc 
 02 
 00 
 00 
@@ -5470,7 +5470,7 @@ c0
 00 
 00 
 00 
-ec 
+e8 
 05 
 00 
 00 
@@ -5510,7 +5510,7 @@ ec
 00 
 00 
 00 
-74 
+70 
 07 
 00 
 00 
@@ -5550,7 +5550,7 @@ a4
 00 
 00 
 00 
-18 
+14 
 08 
 00 
 00 
@@ -5590,7 +5590,7 @@ a4
 00 
 00 
 00 
-20 
+1c 
 08 
 00 
 00 
@@ -5630,7 +5630,7 @@ a4
 00 
 00 
 00 
-6c 
+68 
 08 
 00 
 00 
@@ -5670,7 +5670,7 @@ a6
 00 
 00 
 00 
-b0 
+ac 
 08 
 00 
 00 
@@ -5710,7 +5710,7 @@ b0
 00 
 00 
 00 
-c0 
+bc 
 08 
 00 
 00 
@@ -5750,7 +5750,7 @@ b7
 00 
 00 
 00 
-dc 
+d8 
 08 
 00 
 00 
@@ -5790,7 +5790,7 @@ dc
 00 
 00 
 00 
-e4 
+e0 
 08 
 00 
 00 
@@ -5830,7 +5830,7 @@ cb
 00 
 00 
 00 
-04 
+00 
 09 
 00 
 00 
@@ -5870,7 +5870,7 @@ cb
 00 
 00 
 00 
-14 
+10 
 09 
 00 
 00 
@@ -5910,7 +5910,7 @@ a1
 00 
 00 
 00 
-b5 
+b1 
 0a 
 00 
 00