Add 16-bit immediate tests.
authorAlan Modra <amodra@gmail.com>
Mon, 3 Apr 2000 12:20:55 +0000 (12:20 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 3 Apr 2000 12:20:55 +0000 (12:20 +0000)
gas/testsuite/ChangeLog
gas/testsuite/gas/i386/general.l
gas/testsuite/gas/i386/general.s

index 719f922278a98c4336652df6e9d44bb090cf6340..53378497f28bede5e85bb7660a49c530e635b88a 100644 (file)
@@ -1,3 +1,9 @@
+2000-04-03  Alan Modra  <alan@linuxcare.com.au>
+
+       * gas/i386/general.s: Check 16-bit immediates, and move call/jump
+       checks to start.
+       * gas/i386/general.l: Likewise.
+
 2000-04-01  Alexandre Oliva  <aoliva@cygnus.com>
 
        * gas/mn10300/am33_5.s: Check that negative SP offsets are encoded
index 25a7279093802e5def224c9bba06219d161b5a09..9ea9fc3874a2789ce50e29307ee01bb97463e633 100644 (file)
 .*: Assembler messages:
-.*:10: Warning:.*
-.*:12: Warning:.*
-.*:19: Warning:.*
-.*:22: Warning:.*
-.*:95: Warning:.*
-.*:96: Warning:.*
-.*:97: Warning:.*
-.*:98: Warning:.*
-.*:99: Warning:.*
-.*:100: Warning:.*
-.*:101: Warning:.*
-.*:102: Warning:.*
-.*:103: Warning:.*
-.*:104: Warning:.*
-.*:105: Warning:.*
-.*:106: Warning:.*
-.*:107: Warning:.*
-.*:108: Warning:.*
-.*:109: Warning:.*
-.*:110: Warning:.*
-.*:111: Warning:.*
-.*:112: Warning:.*
-.*:113: Warning:.*
-.*:114: Warning:.*
-.*:115: Warning:.*
-.*:149: Warning:.*
-.*:176: Warning:.*
+.*:7: Warning:.*
+.*:9: Warning:.*
+.*:11: Warning:.*
+.*:13: Warning:.*
+.*:15: Warning:.*
+.*:21: Warning:.*
+.*:23: Warning:.*
+.*:25: Warning:.*
+.*:27: Warning:.*
+.*:29: Warning:.*
+.*:39: Warning:.*
+.*:41: Warning:.*
+.*:48: Warning:.*
+.*:51: Warning:.*
+.*:124: Warning:.*
+.*:125: Warning:.*
+.*:126: Warning:.*
+.*:127: Warning:.*
+.*:128: Warning:.*
+.*:129: Warning:.*
+.*:130: Warning:.*
+.*:131: Warning:.*
+.*:132: Warning:.*
+.*:133: Warning:.*
+.*:134: Warning:.*
+.*:135: Warning:.*
+.*:136: Warning:.*
+.*:137: Warning:.*
+.*:138: Warning:.*
+.*:139: Warning:.*
+.*:140: Warning:.*
+.*:141: Warning:.*
+.*:142: Warning:.*
+.*:143: Warning:.*
+.*:144: Warning:.*
 .*:178: Warning:.*
-.*:180: Warning:.*
-.*:182: Warning:.*
-.*:184: Warning:.*
-.*:190: Warning:.*
-.*:192: Warning:.*
-.*:194: Warning:.*
-.*:196: Warning:.*
-.*:198: Warning:.*
    1                           .psize 0
    2                           .text
-   3                           # test various segment reg insns
-   4 0000 1E                           push    %ds
-   5 0001 1E                           pushl   %ds
-   6 0002 1F                           pop     %ds
-   7 0003 1F                           popl    %ds
-   8 0004 8CD8                         mov     %ds,%eax
-   9 0006 8CD8                         movl    %ds,%eax
-  10 0008 8CD8                         movl    %ds,%ax
-.*Warning:.*
-  11 000a 8ED8                         mov     %eax,%ds
-  12 000c 8ED8                         movl    %ax,%ds
-.*Warning:.*
-  13 000e 8ED8                         movl    %eax,%ds
-  14                           
-  15 0010 661E                         pushw   %ds
-  16 0012 661F                         popw    %ds
-  17 0014 668CD8                       mov     %ds,%ax
-  18 0017 668CD8                       movw    %ds,%ax
-  19 001a 668CD8                       movw    %ds,%eax
-.*Warning:.*
-  20 001d 8ED8                         mov     %ax,%ds
-  21 001f 8ED8                         movw    %ax,%ds
-  22 0021 8ED8                         movw    %eax,%ds
-.*Warning:.*
-  23                           
-  24                           # test various pushes
-  25 0023 6A0A                         pushl   \$10
-  26 0025 666A0A                       pushw   \$10
-  27 0028 6A0A                         push    \$10
-  28 002a 68E80300 00                  pushl   \$1000
-  29 002f 6668E803                     pushw   \$1000
-  30 0033 68E80300 00                  push    \$1000
-  31 0038 FF355700 0000                pushl   1f
-  32 003e 66FF3557 000000              pushw   1f
-  33 0045 FF355700 0000                push    1f
-  34 004b FFB30C00 0000                push    \(1f-.\)\(%ebx\)
-  35 0051 FF350600 0000                push    1f-.
-  36                           # these, and others like them should have no operand size prefix
-  37 0057 0F00D1               1:      lldt    %cx
-  38 005a 0F01F0                       lmsw    %ax
-  39                           
-  40                           # Just to make sure these don't become illegal due to over-enthusiastic
-  41                           # register checking
-  42 005d 660FBEF8                     movsbw  %al,%di
-  43 0061 0FBEC8                       movsbl  %al,%ecx
-  44 0064 0FBFC8                       movswl  %ax,%ecx
-  45 0067 660FB6F8                     movzbw  %al,%di
-  46 006b 0FB6C8                       movzbl  %al,%ecx
-  47 006e 0FB7C8                       movzwl  %ax,%ecx
-  48                           
-  49 0071 EC                           in      %dx,%al
-  50 0072 66ED                         in      %dx,%ax
-  51 0074 ED                           in      %dx,%eax
-  52 0075 EC                           in      \(%dx\),%al
-  53 0076 66ED                         in      \(%dx\),%ax
-  54 0078 ED                           in      \(%dx\),%eax
-  55 0079 EC                           inb     %dx,%al
-  56 007a 66ED                         inw     %dx,%ax
-  57 007c ED                           inl     %dx,%eax
-  58 007d EC                           inb     %dx
-  59 007e 66ED                         inw     %dx
-  60 0080 ED                           inl     %dx
-  61 0081 E4FF                         inb     \$255
-  62 0083 66E502                       inw     \$2
-  63 0086 E504                         inl     \$4
-  64 0088 66E50D                       in      \$13, %ax
-  65 008b EE                           out     %al,%dx
-  66 008c 66EF                         out     %ax,%dx
-  67 008e EF                           out     %eax,%dx
-  68 008f EE                           out     %al,\(%dx\)
-  69 0090 66EF                         out     %ax,\(%dx\)
-  70 0092 EF                           out     %eax,\(%dx\)
-  71 0093 EE                           outb    %al,%dx
-  72 0094 66EF                         outw    %ax,%dx
-  73 0096 EF                           outl    %eax,%dx
-  74 0097 EE                           outb    %dx
-  75 0098 66EF                         outw    %dx
-  76 009a EF                           outl    %dx
-  77 009b E6FF                         outb    \$255
-  78 009d 66E702                       outw    \$2
-  79 00a0 E704                         outl    \$4
-  80 00a2 66E70D                       out     %ax, \$13
-  81                           # These are used in AIX.
-  82 00a5 66ED                         inw     \(%dx\)
-  83 00a7 66EF                         outw    \(%dx\)
-  84                           
-  85 00a9 A4                           movsb
-  86 00aa 66A7                         cmpsw
-  87 00ac AF                           scasl
-  88 00ad D7                           xlatb
-  89 00ae 2EA5                         movsl   %cs:\(%esi\),%es:\(%edi\)
-  90 00b0 0F9303                       setae   \(%ebx\)
-  91 00b3 0F9303                       setaeb  \(%ebx\)
-  92 00b6 0F93C0                       setae   %al
-  93                           
-  94                           #these should give warnings
-  95 00b9 0C01                         orb     \$1,%ax
-.*Warning:.*
-  96 00bb 0C01                         orb     \$1,%eax
-.*Warning:.*
-  97 00bd 80CB01                       orb     \$1,%bx
-.*Warning:.*
-  98 00c0 80CB01                       orb     \$1,%ebx
-.*Warning:.*
-  99 00c3 D9C1                         fldl    %st\(1\)
-.*Warning:.*
- 100 00c5 DDD2                         fstl    %st\(2\)
-.*Warning:.*
- 101 00c7 DDDB                         fstpl   %st\(3\)
-.*Warning:.*
- 102 00c9 D8D4                         fcoml   %st\(4\)
-.*Warning:.*
- 103 00cb D8DD                         fcompl  %st\(5\)
-.*Warning:.*
- 104 00cd DEC1                         faddp   %st\(1\),%st
-.*Warning:.*
- 105 00cf DECA                         fmulp   %st\(2\),%st
-.*Warning:.*
- 106 00d1 DEE3                         fsubp   %st\(3\),%st
-.*Warning:.*
- 107 00d3 DEEC                         fsubrp  %st\(4\),%st
-.*Warning:.*
- 108 00d5 DEF5                         fdivp   %st\(5\),%st
-.*Warning:.*
- 109 00d7 DEFE                         fdivrp  %st\(6\),%st
-.*Warning:.*
- 110 00d9 DEC1                         fadd
-.*Warning:.*
- 111 00db DEE1                         fsub
-.*Warning:.*
- 112 00dd DEC9                         fmul
-.*Warning:.*
- 113 00df DEF1                         fdiv
-.*Warning:.*
- 114 00e1 DEE9                         fsubr
-.*Warning:.*
- 115 00e3 DEF9                         fdivr
-.*Warning:.*
- 116                           #these should all be legal
- 117 00e5 0FA31556 341200              btl     %edx, 0x123456
- 118 00ec 0FA3D0                       btl     %edx, %eax
- 119 00ef 0C01                         orb     \$1,%al
- 120 00f1 80CB01                       orb     \$1,%bl
- 121 00f4 A1110000 00                  movl    17,%eax
- 122 00f9 A1110000 00                  mov     17,%eax
- 123 00fe 66ED                         inw     %dx,%ax
- 124 0100 ED                           inl     %dx,%eax
- 125 0101 66ED                         inw     \(%dx\),%ax
- 126 0103 ED                           inl     \(%dx\),%eax
- 127 0104 EC                           in      \(%dx\),%al
- 128 0105 66ED                         in      \(%dx\),%ax
- 129 0107 ED                           in      \(%dx\),%eax
- 130 0108 0FB61437                     movzbl  \(%edi,%esi\),%edx
- 131 010c 0FB6451C                     movzbl  28\(%ebp\),%eax
- 132 0110 0FB6C0                       movzbl  %al,%eax
- 133 0113 0FB6F1                       movzbl  %cl,%esi
- 134 0116 26D7                         xlat    %es:\(%ebx\)
- 135 0118 D7                           xlat
- 136 0119 D7                           xlatb
- 137 011a DDD8                 1:      fstp    %st\(0\)
- 138 011c E2FC                         loop    1b
- 139 011e F6F1                         divb    %cl 
- 140 0120 66F7F1                       divw    %cx 
- 141 0123 F7F1                         divl    %ecx
- 142 0125 F6F1                         div     %cl
- 143 0127 66F7F1                       div     %cx
- 144 012a F7F1                         div     %ecx
- 145 012c F6F1                         div     %cl,%al
- 146 012e 66F7F1                       div     %cx,%ax
- 147 0131 F7F1                         div     %ecx,%eax
- 148 0133 8EDE                         mov     %si,%ds
- 149 0135 8EDE                         movl    %si,%ds         # warning here
-.*Warning:.*
- 150 0137 1E                           pushl   %ds
- 151 0138 1E                           push    %ds
- 152 0139 A0000000 00                  mov     0,%al
- 153 013e 66A10000 0100                mov     0x10000,%ax
- 154 0144 89C3                         mov     %eax,%ebx
- 155 0146 9C                           pushf
- 156 0147 9C                           pushfl
- 157 0148 669C                         pushfw
- 158 014a 9D                           popf
- 159 014b 9D                           popfl
- 160 014c 669D                         popfw
- 161 014e 89341D00 000000              mov     %esi,\(,%ebx,1\)
- 162 0155 80250000 00007F              andb    \$~0x80,foo
- 163                           
- 164                           #check 16-bit code auto address prefix
- 165                           .code16gcc
- 166 015c 67668D95 00FFFFFF            leal    -256\(%ebp\),%edx
- 167 0164 6788857F FFFFFF              mov     %al,-129\(%ebp\)
- 168 016b 67886580                     mov     %ah,-128\(%ebp\)
- 169 016f 67668D9D 20F9FFFF            leal    -1760\(%ebp\),%ebx
- 170 0177 67668984 248C0000            movl    %eax,140\(%esp\)
- 170      00
- 171                           
- 172                           .code32
- 173 0180 EB98                         jmp     1b
- 174 0182 E9(FCFF|79FE)FF FF                   jmp     xxx
- 175 0187 FF250000 0000                jmp     \*xxx
- 176 018d FF250000 0000                jmp     xxx\(,1\)
-.*Warning:.*
- 177 0193 FFE7                         jmp     \*%edi
- 178 0195 FFE7                         jmp     %edi
-.*Warning:.*
- 179 0197 FF27                         jmp     \*\(%edi\)
- 180 0199 FF27                         jmp     \(%edi\)
-.*Warning:.*
- 181 019b FF2CBD00 000000              ljmp    \*xxx\(,%edi,4\)
- 182 01a2 FF2CBD00 000000              ljmp    xxx\(,%edi,4\)
-.*Warning:.*
- 183 01a9 FF2D0000 0000                ljmp    \*xxx
- 184 01af FF2D0000 0000                ljmp    xxx\(,1\)
-.*Warning:.*
- 185 01b5 EA000000 003412              ljmp    \$0x1234,\$xxx
- 186                           
- 187 01bc E859FFFF FF                  call    1b
- 188 01c1 E8(FCFF|3AFE)FF FF                   call    xxx
- 189 01c6 FF150000 0000                call    \*xxx
- 190 01cc FF150000 0000                call    xxx\(,1\)
-.*Warning:.*
- 191 01d2 FFD7                         call    \*%edi
- 192 01d4 FFD7                         call    %edi
-.*Warning:.*
- 193 01d6 FF17                         call    \*\(%edi\)
- 194 01d8 FF17                         call    \(%edi\)
-.*Warning:.*
- 195 01da FF1CBD00 000000              lcall   \*xxx\(,%edi,4\)
- 196 01e1 FF1CBD00 000000              lcall   xxx\(,%edi,4\)
-.*Warning:.*
- 197 01e8 FF1D0000 0000                lcall   \*xxx
- 198 01ee FF1D0000 0000                lcall   xxx\(,1\)
-.*Warning:.*
- 199 01f4 9A000000 003412              lcall   \$0x1234,\$xxx
- 200                           
- 201                                   # Force a good alignment.
- 202 01fb 00000000 00                  .p2align        4,0
+   3                           #test jumps and calls
+   4 0000 EBFE                 1:      jmp     1b
+   5 0002 E9F(CF|9F)FFF FF                     jmp     xxx
+   6 0007 FF250000 0000                jmp     \*xxx
+   7 000d FF250000 0000                jmp     xxx\(,1\)
+.*Warning:.*
+   8 0013 FFE7                         jmp     \*%edi
+   9 0015 FFE7                         jmp     %edi
+.*Warning:.*
+  10 0017 FF27                         jmp     \*\(%edi\)
+  11 0019 FF27                         jmp     \(%edi\)
+.*Warning:.*
+  12 001b FF2CBD00 000000              ljmp    \*xxx\(,%edi,4\)
+  13 0022 FF2CBD00 000000              ljmp    xxx\(,%edi,4\)
+.*Warning:.*
+  14 0029 FF2D0000 0000                ljmp    \*xxx
+  15 002f FF2D0000 0000                ljmp    xxx\(,1\)
+.*Warning:.*
+  16 0035 EA000000 003412              ljmp    \$0x1234,\$xxx
+  17                           
+  18 003c E8BFFFFF FF                  call    1b
+  19 0041 E8(FC|BA)FFFF FF                     call    xxx
+  20 0046 FF150000 0000                call    \*xxx
+  21 004c FF150000 0000                call    xxx\(,1\)
+.*Warning:.*
+  22 0052 FFD7                         call    \*%edi
+  23 0054 FFD7                         call    %edi
+.*Warning:.*
+  24 0056 FF17                         call    \*\(%edi\)
+  25 0058 FF17                         call    \(%edi\)
+.*Warning:.*
+  26 005a FF1CBD00 000000              lcall   \*xxx\(,%edi,4\)
+  27 0061 FF1CBD00 000000              lcall   xxx\(,%edi,4\)
+.*Warning:.*
+  28 0068 FF1D0000 0000                lcall   \*xxx
+  29 006e FF1D0000 0000                lcall   xxx\(,1\)
+.*Warning:.*
+  30 0074 9A000000 003412              lcall   \$0x1234,\$xxx
+  31                           
+  32                           # test various segment reg insns
+  33 007b 1E                           push    %ds
+  34 007c 1E                           pushl   %ds
+  35 007d 1F                           pop     %ds
+  36 007e 1F                           popl    %ds
+  37 007f 8CD8                         mov     %ds,%eax
+  38 0081 8CD8                         movl    %ds,%eax
+  39 0083 8CD8                         movl    %ds,%ax
+.*Warning:.*
+  40 0085 8ED8                         mov     %eax,%ds
+  41 0087 8ED8                         movl    %ax,%ds
+.*Warning:.*
+  42 0089 8ED8                         movl    %eax,%ds
+  43                           
+  44 008b 661E                         pushw   %ds
+  45 008d 661F                         popw    %ds
+  46 008f 668CD8                       mov     %ds,%ax
+  47 0092 668CD8                       movw    %ds,%ax
+  48 0095 668CD8                       movw    %ds,%eax
+.*Warning:.*
+  49 0098 8ED8                         mov     %ax,%ds
+  50 009a 8ED8                         movw    %ax,%ds
+  51 009c 8ED8                         movw    %eax,%ds
+.*Warning:.*
+  52                           
+  53                           # test various pushes
+  54 009e 6A0A                         pushl   \$10
+  55 00a0 666A0A                       pushw   \$10
+  56 00a3 6A0A                         push    \$10
+  57 00a5 68E80300 00                  pushl   \$1000
+  58 00aa 6668E803                     pushw   \$1000
+  59 00ae 68E80300 00                  push    \$1000
+  60 00b3 FF35D200 0000                pushl   1f
+  61 00b9 66FF35D2 000000              pushw   1f
+  62 00c0 FF35D200 0000                push    1f
+  63 00c6 FFB30C00 0000                push    \(1f-.\)\(%ebx\)
+  64 00cc FF350600 0000                push    1f-.
+  65                           # these, and others like them should have no operand size prefix
+  66 00d2 0F00D1               1:      lldt    %cx
+  67 00d5 0F01F0                       lmsw    %ax
+  68                           
+  69                           # Just to make sure these don't become illegal due to over-enthusiastic
+  70                           # register checking
+  71 00d8 660FBEF8                     movsbw  %al,%di
+  72 00dc 0FBEC8                       movsbl  %al,%ecx
+  73 00df 0FBFC8                       movswl  %ax,%ecx
+  74 00e2 660FB6F8                     movzbw  %al,%di
+  75 00e6 0FB6C8                       movzbl  %al,%ecx
+  76 00e9 0FB7C8                       movzwl  %ax,%ecx
+  77                           
+  78 00ec EC                           in      %dx,%al
+  79 00ed 66ED                         in      %dx,%ax
+  80 00ef ED                           in      %dx,%eax
+  81 00f0 EC                           in      \(%dx\),%al
+  82 00f1 66ED                         in      \(%dx\),%ax
+  83 00f3 ED                           in      \(%dx\),%eax
+  84 00f4 EC                           inb     %dx,%al
+  85 00f5 66ED                         inw     %dx,%ax
+  86 00f7 ED                           inl     %dx,%eax
+  87 00f8 EC                           inb     %dx
+  88 00f9 66ED                         inw     %dx
+  89 00fb ED                           inl     %dx
+  90 00fc E4FF                         inb     \$255
+  91 00fe 66E502                       inw     \$2
+  92 0101 E504                         inl     \$4
+  93 0103 66E50D                       in      \$13, %ax
+  94 0106 EE                           out     %al,%dx
+  95 0107 66EF                         out     %ax,%dx
+  96 0109 EF                           out     %eax,%dx
+  97 010a EE                           out     %al,\(%dx\)
+  98 010b 66EF                         out     %ax,\(%dx\)
+  99 010d EF                           out     %eax,\(%dx\)
+ 100 010e EE                           outb    %al,%dx
+ 101 010f 66EF                         outw    %ax,%dx
+ 102 0111 EF                           outl    %eax,%dx
+ 103 0112 EE                           outb    %dx
+ 104 0113 66EF                         outw    %dx
+ 105 0115 EF                           outl    %dx
+ 106 0116 E6FF                         outb    \$255
+ 107 0118 66E702                       outw    \$2
+ 108 011b E704                         outl    \$4
+ 109 011d 66E70D                       out     %ax, \$13
+ 110                           # These are used in AIX.
+ 111 0120 66ED                         inw     \(%dx\)
+ 112 0122 66EF                         outw    \(%dx\)
+ 113                           
+ 114 0124 A4                           movsb
+ 115 0125 66A7                         cmpsw
+ 116 0127 AF                           scasl
+ 117 0128 D7                           xlatb
+ 118 0129 2EA5                         movsl   %cs:\(%esi\),%es:\(%edi\)
+ 119 012b 0F9303                       setae   \(%ebx\)
+ 120 012e 0F9303                       setaeb  \(%ebx\)
+ 121 0131 0F93C0                       setae   %al
+ 122                           
+ 123                           #these should give warnings
+ 124 0134 0C01                         orb     \$1,%ax
+.*Warning:.*
+ 125 0136 0C01                         orb     \$1,%eax
+.*Warning:.*
+ 126 0138 80CB01                       orb     \$1,%bx
+.*Warning:.*
+ 127 013b 80CB01                       orb     \$1,%ebx
+.*Warning:.*
+ 128 013e D9C1                         fldl    %st\(1\)
+.*Warning:.*
+ 129 0140 DDD2                         fstl    %st\(2\)
+.*Warning:.*
+ 130 0142 DDDB                         fstpl   %st\(3\)
+.*Warning:.*
+ 131 0144 D8D4                         fcoml   %st\(4\)
+.*Warning:.*
+ 132 0146 D8DD                         fcompl  %st\(5\)
+.*Warning:.*
+ 133 0148 DEC1                         faddp   %st\(1\),%st
+.*Warning:.*
+ 134 014a DECA                         fmulp   %st\(2\),%st
+.*Warning:.*
+ 135 014c DEE3                         fsubp   %st\(3\),%st
+.*Warning:.*
+ 136 014e DEEC                         fsubrp  %st\(4\),%st
+.*Warning:.*
+ 137 0150 DEF5                         fdivp   %st\(5\),%st
+.*Warning:.*
+ 138 0152 DEFE                         fdivrp  %st\(6\),%st
+.*Warning:.*
+ 139 0154 DEC1                         fadd
+.*Warning:.*
+ 140 0156 DEE1                         fsub
+.*Warning:.*
+ 141 0158 DEC9                         fmul
+.*Warning:.*
+ 142 015a DEF1                         fdiv
+.*Warning:.*
+ 143 015c DEE9                         fsubr
+.*Warning:.*
+ 144 015e DEF9                         fdivr
+.*Warning:.*
+ 145                           #these should all be legal
+ 146 0160 0FA31556 341200              btl     %edx, 0x123456
+ 147 0167 0FA3D0                       btl     %edx, %eax
+ 148 016a 0C01                         orb     \$1,%al
+ 149 016c 80CB01                       orb     \$1,%bl
+ 150 016f A1110000 00                  movl    17,%eax
+ 151 0174 A1110000 00                  mov     17,%eax
+ 152 0179 66ED                         inw     %dx,%ax
+ 153 017b ED                           inl     %dx,%eax
+ 154 017c 66ED                         inw     \(%dx\),%ax
+ 155 017e ED                           inl     \(%dx\),%eax
+ 156 017f EC                           in      \(%dx\),%al
+ 157 0180 66ED                         in      \(%dx\),%ax
+ 158 0182 ED                           in      \(%dx\),%eax
+ 159 0183 0FB61437                     movzbl  \(%edi,%esi\),%edx
+ 160 0187 0FB6451C                     movzbl  28\(%ebp\),%eax
+ 161 018b 0FB6C0                       movzbl  %al,%eax
+ 162 018e 0FB6F1                       movzbl  %cl,%esi
+ 163 0191 26D7                         xlat    %es:\(%ebx\)
+ 164 0193 D7                           xlat
+ 165 0194 D7                           xlatb
+ 166 0195 DDD8                 1:      fstp    %st\(0\)
+ 167 0197 E2FC                         loop    1b
+ 168 0199 F6F1                         divb    %cl 
+ 169 019b 66F7F1                       divw    %cx 
+ 170 019e F7F1                         divl    %ecx
+ 171 01a0 F6F1                         div     %cl
+ 172 01a2 66F7F1                       div     %cx
+ 173 01a5 F7F1                         div     %ecx
+ 174 01a7 F6F1                         div     %cl,%al
+ 175 01a9 66F7F1                       div     %cx,%ax
+ 176 01ac F7F1                         div     %ecx,%eax
+ 177 01ae 8EDE                         mov     %si,%ds
+ 178 01b0 8EDE                         movl    %si,%ds         # warning here
+.*Warning:.*
+ 179 01b2 1E                           pushl   %ds
+ 180 01b3 1E                           push    %ds
+ 181 01b4 A0000000 00                  mov     0,%al
+ 182 01b9 66A10000 0100                mov     0x10000,%ax
+ 183 01bf 89C3                         mov     %eax,%ebx
+ 184 01c1 9C                           pushf
+ 185 01c2 9C                           pushfl
+ 186 01c3 669C                         pushfw
+ 187 01c5 9D                           popf
+ 188 01c6 9D                           popfl
+ 189 01c7 669D                         popfw
+ 190 01c9 89341D00 000000              mov     %esi,\(,%ebx,1\)
+ 191 01d0 80250000 00007F              andb    \$~0x80,foo
+ 192                           
+ 193 01d7 6683E0FE                     and     \$0xfffe,%ax
+ 194 01db 662500FF                     and     \$0xff00,%ax
+ 195 01df 25FEFF00 00                  and     \$0xfffe,%eax
+ 196 01e4 2500FF00 00                  and     \$0xff00,%eax
+ 197 01e9 83E0FE                       and     \$0xfffffffe,%eax
+ 198                           
+ 199                           .code16
+ 200 01ec 83E0FE                       and     \$0xfffe,%ax
+ 201 01ef 2500FF                       and     \$0xff00,%ax
+ 202 01f2 6625FEFF 0000                and     \$0xfffe,%eax
+ 203 01f8 662500FF 0000                and     \$0xff00,%eax
+ 204 01fe 6683E0FE                     and     \$0xfffffffe,%eax
+ 205                           
+ 206                           #check 16-bit code auto address prefix
+ 207                           .code16gcc
+ 208 0202 67668D95 00FFFFFF            leal    -256\(%ebp\),%edx
+ 209 020a 6788857F FFFFFF              mov     %al,-129\(%ebp\)
+ 210 0211 67886580                     mov     %ah,-128\(%ebp\)
+ 211 0215 67668D9D 20F9FFFF            leal    -1760\(%ebp\),%ebx
+ 212 021d 67668984 248C0000            movl    %eax,140\(%esp\)
+ 212      00
+ 213                           
+ 214                                   # Force a good alignment.
+ 215 0226 00000000 00000000            .p2align        4,0
+ 215      0000
index 8d08dbf1571c0175cea73fbe3d66408b1f573c3d..3d0403d4f77b835c63fa8121ba21ecacd03c5d40 100644 (file)
@@ -1,5 +1,34 @@
 .psize 0
 .text
+#test jumps and calls
+1:     jmp     1b
+       jmp     xxx
+       jmp     *xxx
+       jmp     xxx(,1)
+       jmp     *%edi
+       jmp     %edi
+       jmp     *(%edi)
+       jmp     (%edi)
+       ljmp    *xxx(,%edi,4)
+       ljmp    xxx(,%edi,4)
+       ljmp    *xxx
+       ljmp    xxx(,1)
+       ljmp    $0x1234,$xxx
+
+       call    1b
+       call    xxx
+       call    *xxx
+       call    xxx(,1)
+       call    *%edi
+       call    %edi
+       call    *(%edi)
+       call    (%edi)
+       lcall   *xxx(,%edi,4)
+       lcall   xxx(,%edi,4)
+       lcall   *xxx
+       lcall   xxx(,1)
+       lcall   $0x1234,$xxx
+
 # test various segment reg insns
        push    %ds
        pushl   %ds
        mov     %esi,(,%ebx,1)
        andb    $~0x80,foo
 
+       and     $0xfffe,%ax
+       and     $0xff00,%ax
+       and     $0xfffe,%eax
+       and     $0xff00,%eax
+       and     $0xfffffffe,%eax
+
+.code16
+       and     $0xfffe,%ax
+       and     $0xff00,%ax
+       and     $0xfffe,%eax
+       and     $0xff00,%eax
+       and     $0xfffffffe,%eax
+
 #check 16-bit code auto address prefix
 .code16gcc
        leal    -256(%ebp),%edx
        leal    -1760(%ebp),%ebx
        movl    %eax,140(%esp)
 
-.code32
-       jmp     1b
-       jmp     xxx
-       jmp     *xxx
-       jmp     xxx(,1)
-       jmp     *%edi
-       jmp     %edi
-       jmp     *(%edi)
-       jmp     (%edi)
-       ljmp    *xxx(,%edi,4)
-       ljmp    xxx(,%edi,4)
-       ljmp    *xxx
-       ljmp    xxx(,1)
-       ljmp    $0x1234,$xxx
-
-       call    1b
-       call    xxx
-       call    *xxx
-       call    xxx(,1)
-       call    *%edi
-       call    %edi
-       call    *(%edi)
-       call    (%edi)
-       lcall   *xxx(,%edi,4)
-       lcall   xxx(,%edi,4)
-       lcall   *xxx
-       lcall   xxx(,1)
-       lcall   $0x1234,$xxx
-
        # Force a good alignment.
        .p2align        4,0