]> granicus.if.org Git - yasm/commitdiff
Fix typo/bug in handling of OPA_AdSizeR (using wrong insn_info *).
authorPeter Johnson <peter@tortall.net>
Fri, 8 Nov 2002 08:48:30 +0000 (08:48 -0000)
committerPeter Johnson <peter@tortall.net>
Fri, 8 Nov 2002 08:48:30 +0000 (08:48 -0000)
svn path=/trunk/yasm/; revision=805

modules/arch/x86/tests/loopadsz.asm [new file with mode: 0644]
modules/arch/x86/tests/loopadsz.errwarn [new file with mode: 0644]
modules/arch/x86/tests/loopadsz.hex [new file with mode: 0644]
modules/arch/x86/x86id.re
src/arch/x86/tests/loopadsz.asm [new file with mode: 0644]
src/arch/x86/tests/loopadsz.errwarn [new file with mode: 0644]
src/arch/x86/tests/loopadsz.hex [new file with mode: 0644]
src/arch/x86/x86id.re

diff --git a/modules/arch/x86/tests/loopadsz.asm b/modules/arch/x86/tests/loopadsz.asm
new file mode 100644 (file)
index 0000000..4d344fd
--- /dev/null
@@ -0,0 +1,7 @@
+[bits 16]
+foo: a32 loop foo      ; 67 E2 FE
+bar: loop bar, ecx     ; 67 E2 FD
+
+[bits 32]
+baz: a16 loop baz      ; 67 E2 FE
+qux: loop qux, cx      ; 67 E2 FD
diff --git a/modules/arch/x86/tests/loopadsz.errwarn b/modules/arch/x86/tests/loopadsz.errwarn
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/modules/arch/x86/tests/loopadsz.hex b/modules/arch/x86/tests/loopadsz.hex
new file mode 100644 (file)
index 0000000..b47e471
--- /dev/null
@@ -0,0 +1,12 @@
+67 
+e2 
+fd 
+67 
+e2 
+fd 
+67 
+e2 
+fd 
+67 
+e2 
+fd 
index b57ea32a54222cb148c6a45547e02eb9a5817b39..12a9cfd30fed54afd6088fb74c4967b0ef9a7c55 100644 (file)
@@ -1345,7 +1345,7 @@ x86_new_jmprel(const unsigned long data[4], int num_operands,
     /* Check for address size setting in second operand, if present */
     if (jrinfo->num_operands > 1 &&
        (jrinfo->operands[1] & OPA_MASK) == OPA_AdSizeR)
-       d.addrsize = (unsigned char)size_lookup[(info->operands[1] &
+       d.addrsize = (unsigned char)size_lookup[(jrinfo->operands[1] &
                                                 OPS_MASK)>>OPS_SHIFT];
     else
        d.addrsize = 0;
diff --git a/src/arch/x86/tests/loopadsz.asm b/src/arch/x86/tests/loopadsz.asm
new file mode 100644 (file)
index 0000000..4d344fd
--- /dev/null
@@ -0,0 +1,7 @@
+[bits 16]
+foo: a32 loop foo      ; 67 E2 FE
+bar: loop bar, ecx     ; 67 E2 FD
+
+[bits 32]
+baz: a16 loop baz      ; 67 E2 FE
+qux: loop qux, cx      ; 67 E2 FD
diff --git a/src/arch/x86/tests/loopadsz.errwarn b/src/arch/x86/tests/loopadsz.errwarn
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/arch/x86/tests/loopadsz.hex b/src/arch/x86/tests/loopadsz.hex
new file mode 100644 (file)
index 0000000..b47e471
--- /dev/null
@@ -0,0 +1,12 @@
+67 
+e2 
+fd 
+67 
+e2 
+fd 
+67 
+e2 
+fd 
+67 
+e2 
+fd 
index b57ea32a54222cb148c6a45547e02eb9a5817b39..12a9cfd30fed54afd6088fb74c4967b0ef9a7c55 100644 (file)
@@ -1345,7 +1345,7 @@ x86_new_jmprel(const unsigned long data[4], int num_operands,
     /* Check for address size setting in second operand, if present */
     if (jrinfo->num_operands > 1 &&
        (jrinfo->operands[1] & OPA_MASK) == OPA_AdSizeR)
-       d.addrsize = (unsigned char)size_lookup[(info->operands[1] &
+       d.addrsize = (unsigned char)size_lookup[(jrinfo->operands[1] &
                                                 OPS_MASK)>>OPS_SHIFT];
     else
        d.addrsize = 0;