From 71851002d0b8dcdfb99163d0cbae706a80cd076a Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 3 Apr 2000 12:20:55 +0000 Subject: [PATCH] Add 16-bit immediate tests. --- gas/testsuite/ChangeLog | 6 + gas/testsuite/gas/i386/general.l | 558 ++++++++++++++++--------------- gas/testsuite/gas/i386/general.s | 71 ++-- 3 files changed, 334 insertions(+), 301 deletions(-) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 719f922278a..53378497f28 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2000-04-03 Alan Modra + + * 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 * gas/mn10300/am33_5.s: Check that negative SP offsets are encoded diff --git a/gas/testsuite/gas/i386/general.l b/gas/testsuite/gas/i386/general.l index 25a72790938..9ea9fc3874a 100644 --- a/gas/testsuite/gas/i386/general.l +++ b/gas/testsuite/gas/i386/general.l @@ -1,276 +1,290 @@ .*: 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 diff --git a/gas/testsuite/gas/i386/general.s b/gas/testsuite/gas/i386/general.s index 8d08dbf1571..3d0403d4f77 100644 --- a/gas/testsuite/gas/i386/general.s +++ b/gas/testsuite/gas/i386/general.s @@ -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 @@ -161,6 +190,19 @@ 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 @@ -169,34 +211,5 @@ 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 -- 2.30.2