diff options
-rw-r--r-- | gas/config/tc-i386.c | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-inval-crc32.l | 40 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-inval-crc32.s | 2 |
3 files changed, 26 insertions, 19 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 235e41e..6dcdccb 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -8151,7 +8151,8 @@ check_qword_reg (void) && (i.tm.operand_types[op].bitfield.class == Reg || i.tm.operand_types[op].bitfield.instance == Accum) && (i.tm.operand_types[op].bitfield.word - || i.tm.operand_types[op].bitfield.dword)) + || i.tm.operand_types[op].bitfield.dword + || i.tm.operand_types[op].bitfield.qword)) { as_bad (_("`%s%s' not allowed with `%s%c'"), register_prefix, diff --git a/gas/testsuite/gas/i386/x86-64-inval-crc32.l b/gas/testsuite/gas/i386/x86-64-inval-crc32.l index 4c3d418..260f4e7 100644 --- a/gas/testsuite/gas/i386/x86-64-inval-crc32.l +++ b/gas/testsuite/gas/i386/x86-64-inval-crc32.l @@ -15,8 +15,8 @@ .*:19: Error: .* .*:20: Error: .* .*:21: Error: .* -.*:24: Error: .* -.*:25: Error: .* +.*:22: Error: .* +.*:23: Error: .* .*:26: Error: .* .*:27: Error: .* .*:28: Error: .* @@ -26,6 +26,8 @@ .*:32: Error: .* .*:33: Error: .* .*:34: Error: .* +.*:35: Error: .* +.*:36: Error: .* GAS LISTING .* @@ -52,20 +54,22 @@ GAS LISTING .* [ ]*17[ ]+crc32 %eax, %rax [ ]*18[ ]+crc32l %rax, %eax [ ]*19[ ]+crc32l %eax, %rax -[ ]*20[ ]+crc32q %eax, %rax -[ ]*21[ ]+crc32q %rax, %eax -[ ]*22[ ]+ -[ ]*23[ ]+\.intel_syntax noprefix -[ ]*24[ ]+crc32 al,byte ptr \[rsi\] -[ ]*25[ ]+crc32 ax, word ptr \[rsi\] -[ ]*26[ ]+crc32 rax,word ptr \[rsi\] -[ ]*27[ ]+crc32 rax,dword ptr \[rsi\] -[ ]*28[ ]+crc32 al,\[rsi\] -[ ]*29[ ]+crc32 ax,\[rsi\] -[ ]*30[ ]+crc32 eax,\[rsi\] -[ ]*31[ ]+crc32 rax,\[rsi\] -[ ]*32[ ]+crc32 al,al -[ ]*33[ ]+crc32 ax, ax -[ ]*34[ ]+crc32 rax,eax -[ ]*35[ ]* +[ ]*[0-9]+[ ]+crc32q %al, %rax +[ ]*[0-9]+[ ]+crc32q %ax, %rax +[ ]*[0-9]+[ ]+crc32q %eax, %rax +[ ]*[0-9]+[ ]+crc32q %rax, %eax +[ ]*[0-9]+[ ]+ +[ ]*[0-9]+[ ]+\.intel_syntax noprefix +[ ]*[0-9]+[ ]+crc32 al,byte ptr \[rsi\] +[ ]*[0-9]+[ ]+crc32 ax, word ptr \[rsi\] +[ ]*[0-9]+[ ]+crc32 rax,word ptr \[rsi\] +[ ]*[0-9]+[ ]+crc32 rax,dword ptr \[rsi\] +[ ]*[0-9]+[ ]+crc32 al,\[rsi\] +[ ]*[0-9]+[ ]+crc32 ax,\[rsi\] +[ ]*[0-9]+[ ]+crc32 eax,\[rsi\] +[ ]*[0-9]+[ ]+crc32 rax,\[rsi\] +[ ]*[0-9]+[ ]+crc32 al,al +[ ]*[0-9]+[ ]+crc32 ax, ax +[ ]*[0-9]+[ ]+crc32 rax,eax +[ ]*[0-9]+[ ]* #pass diff --git a/gas/testsuite/gas/i386/x86-64-inval-crc32.s b/gas/testsuite/gas/i386/x86-64-inval-crc32.s index 8f05c57..7e106c7 100644 --- a/gas/testsuite/gas/i386/x86-64-inval-crc32.s +++ b/gas/testsuite/gas/i386/x86-64-inval-crc32.s @@ -17,6 +17,8 @@ crc32 %rax, %eax crc32 %eax, %rax crc32l %rax, %eax crc32l %eax, %rax +crc32q %al, %rax +crc32q %ax, %rax crc32q %eax, %rax crc32q %rax, %eax |