From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 100825 invoked by alias); 22 Feb 2017 16:08:48 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 100809 invoked by uid 89); 22 Feb 2017 16:08:47 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-15.0 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-qk0-f171.google.com Received: from mail-qk0-f171.google.com (HELO mail-qk0-f171.google.com) (209.85.220.171) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 22 Feb 2017 16:08:44 +0000 Received: by mail-qk0-f171.google.com with SMTP id n127so6991656qkf.0 for ; Wed, 22 Feb 2017 08:08:44 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=U1nRmDSWl3Lx33VihF00VKtSp2gP6Wlqs16skOaD29I=; b=Bib68tUXYjAEgxRkBKDQh/hh4fCNAYDSiJkB8M7PCGJ6OmuNpEkyzCk0mpWNvZEGPm yklxvDckpjXRZgzuEPzB2mLDXPud5SkxxWqKP2UESna8oImqhuW0q2CQXrUAeHEJNcIH vLIKySQ0vA0T0TLqmUbFniIcs45kMSV5ur1F5VY1GZf6HacM5pkj/4pVuN0Js9GFRhkR g6XgsZd/N3VoWi3mWIpz8HxgAIvtvv29OyRro0FUEPShXRmNsFtsO7xXixoMBTxHYyMl SuSKR3JFK5qGuPKZ7DIQOiM7gnRJ0eVUYtz6uPx9zCYDJGig99tXYssjs7+NnkX7VFUx nc4A== X-Gm-Message-State: AMke39l1w2xHWz04DoBi0WxGX8izP42lVHkZFVdUAKFTnkkwShc1qYiOfNc81c/jq3ngGjW8zgwAuI60HIpd9Q== X-Received: by 10.55.46.2 with SMTP id u2mr34477113qkh.231.1487779721576; Wed, 22 Feb 2017 08:08:41 -0800 (PST) MIME-Version: 1.0 Received: by 10.233.239.69 with HTTP; Wed, 22 Feb 2017 08:08:41 -0800 (PST) In-Reply-To: <58AC2DB6020000780013C38A@prv-mh.provo.novell.com> References: <58AC2DB6020000780013C38A@prv-mh.provo.novell.com> From: "H.J. Lu" Date: Wed, 22 Feb 2017 16:08:00 -0000 Message-ID: Subject: Re: [PATCH] x86: extend 64-bit invalid MPX insn forms testcase To: Jan Beulich Cc: Binutils Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2017-02/txt/msg00252.txt.bz2 On Tue, Feb 21, 2017 at 3:08 AM, Jan Beulich wrote: > gas/ > 2017-02-21 Jan Beulich > > * gas/testsuite/gas/i386/x86-64-mpx-inval-2.d: Add 32- and 16- > bit GPR forms of BNDCL, BNDCU, and BNDCN. Add RSP-as-index > Intel syntax forms of BNDMK, BNDSTX, and BNDLDX. > * gas/testsuite/gas/i386/x86-64-mpx-inval-2.l: Adjust. > > --- 2017-02-21/gas/testsuite/gas/i386/x86-64-mpx-inval-2.l > +++ 2017-02-21/gas/testsuite/gas/i386/x86-64-mpx-inval-2.l > @@ -9,44 +9,59 @@ > .*:16: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:19: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:20: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:23: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:24: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:27: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:28: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:21: Error: .* `bndcl' > +.*:22: Error: .* `bndcl' > +.*:25: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:26: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:27: Error: .* `bndcu' > +.*:28: Error: .* `bndcu' > .*:31: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:32: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:33: Warning: register scaling is being ignored here > -.*:34: Error: `base\(%rip\)' cannot be used here > -.*:35: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:33: Error: .* `bndcn' > +.*:34: Error: .* `bndcn' > +.*:37: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:38: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:39: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:40: Warning: register scaling is being ignored here > -.*:41: Error: `base\(%rip\)' cannot be used here > -.*:42: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:39: Warning: register scaling is being ignored here > +.*:40: Error: `base\(%rip\)' cannot be used here > +.*:41: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:44: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:45: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:46: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:47: Error: `\[rip\]' cannot be used here > +.*:46: Warning: register scaling is being ignored here > +.*:47: Error: `base\(%rip\)' cannot be used here > .*:48: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:51: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:52: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:53: Error: `\[rip\]' cannot be used here > .*:54: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:55: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:55: Error: `\[rax\+rsp\]' is not a valid base/index expression > .*:58: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:59: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:61: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:62: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:63: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:65: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:66: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:67: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:70: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:67: Error: .* `bndcl' > +.*:68: Error: .* `bndcl' > .*:71: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:72: Warning: register scaling is being ignored here > -.*:73: Error: `\[rip\+base\]' cannot be used here > -.*:74: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:72: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:73: Error: .* `bndcu' > +.*:74: Error: .* `bndcu' > .*:77: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > .*:78: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -.*:79: Warning: register scaling is being ignored here > -.*:80: Error: `\[rip\+base\]' cannot be used here > -.*:81: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:79: Error: .* `bndcn' > +.*:80: Error: .* `bndcn' > +.*:83: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:84: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:85: Warning: register scaling is being ignored here > +.*:86: Error: `\[rip\+base\]' cannot be used here > +.*:87: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:88: Error: `\[rax\+rsp\]' is not a valid base/index expression > +.*:91: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:92: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:93: Warning: register scaling is being ignored here > +.*:94: Error: `\[rip\+base\]' cannot be used here > +.*:95: Error: 32-bit address isn't allowed in 64-bit MPX instructions. > +.*:96: Error: `\[rax\+rsp\]' is not a valid base/index expression > GAS LISTING .* > > > @@ -54,175 +69,193 @@ GAS LISTING .* > [ ]*2[ ]+\.allow_index_reg > [ ]*3[ ]+\.text > [ ]*4[ ]+ > -[ ]*5[ ]+\#\#\# bndmk > -[ ]*6[ ]+\?\?\?\? 67F30F1B bndmk \(%eax\), %bnd1 > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndmk > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk \(%eax\), %bnd1 > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*6[ ]+08 > -[ ]*7[ ]+\?\?\?\? 67F30F1B bndmk 0x3\(%ecx,%ebx,1\), %bnd1 > +[ ]*[1-9][0-9]*[ ]+08 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk 0x3\(%ecx,%ebx,1\), %bnd1 > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*7[ ]+4C1903 > -[ ]*8[ ]+bndmk \(%rip\), %bnd3 > -[ ]*9[ ]+\?\?\?\? 67F30F1B bndmk \(%eip\), %bnd2 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*9[ ]+15000000 > -[ ]*9[ ]+00 > -[ ]*10[ ]+ > -[ ]*11[ ]+\#\#\# bndmov > -[ ]*12[ ]+\?\?\?\? 6766410F bndmov \(%r8d\), %bnd1 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*12[ ]+1A08 > -[ ]*13[ ]+\?\?\?\? 6766410F bndmov 0x3\(%r9d,%edx,1\), %bnd1 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*13[ ]+1A4C1103 > -[ ]*14[ ]+ > -[ ]*15[ ]+\?\?\?\? 67660F1B bndmov %bnd1, \(%eax\) > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*15[ ]+08 > -[ ]*16[ ]+\?\?\?\? 67660F1B bndmov %bnd1, 0x3\(%ecx,%eax,1\) > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*16[ ]+4C0103 > -[ ]*17[ ]+ > -[ ]*18[ ]+\#\#\# bndcl > -[ ]*19[ ]+\?\?\?\? 67F30F1A bndcl \(%ecx\), %bnd1 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*19[ ]+09 > -[ ]*20[ ]+\?\?\?\? 67F30F1A bndcl 0x3\(%ecx,%eax,1\), %bnd1 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*20[ ]+4C0103 > -[ ]*21[ ]+ > -[ ]*22[ ]+\#\#\# bndcu > -[ ]*23[ ]+\?\?\?\? 67F20F1A bndcu \(%ecx\), %bnd1 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*23[ ]+09 > -[ ]*24[ ]+\?\?\?\? 67F20F1A bndcu 0x3\(%ecx,%eax,1\), %bnd1 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*24[ ]+4C0103 > -[ ]*25[ ]+ > -[ ]*26[ ]+\#\#\# bndcn > -[ ]*27[ ]+\?\?\?\? 67F20F1B bndcn \(%ecx\), %bnd1 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*27[ ]+09 > -[ ]*28[ ]+\?\?\?\? 67F20F1B bndcn 0x3\(%ecx,%eax,1\), %bnd1 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*28[ ]+4C0103 > -[ ]*29[ ]+ > -[ ]*30[ ]+\#\#\# bndstx > +[ ]*[1-9][0-9]*[ ]+4C1903 > +[ ]*[1-9][0-9]*[ ]+bndmk \(%rip\), %bnd3 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk \(%eip\), %bnd2 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+15000000 > +[ ]*[1-9][0-9]*[ ]+00 > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndmov > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 6766410F bndmov \(%r8d\), %bnd1 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+1A08 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 6766410F bndmov 0x3\(%r9d,%edx,1\), %bnd1 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+1A4C1103 > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1B bndmov %bnd1, \(%eax\) > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+08 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1B bndmov %bnd1, 0x3\(%ecx,%eax,1\) > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+4C0103 > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcl > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1A bndcl \(%ecx\), %bnd1 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+09 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1A bndcl 0x3\(%ecx,%eax,1\), %bnd1 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+4C0103 > +[ ]*[1-9][0-9]*[ ]+bndcl %ecx, %bnd1 > +[ ]*[1-9][0-9]*[ ]+bndcl %cx, %bnd1 > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcu > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1A bndcu \(%ecx\), %bnd1 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+09 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1A bndcu 0x3\(%ecx,%eax,1\), %bnd1 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+4C0103 > +[ ]*[1-9][0-9]*[ ]+bndcu %ecx, %bnd1 > +[ ]*[1-9][0-9]*[ ]+bndcu %cx, %bnd1 > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcn > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1B bndcn \(%ecx\), %bnd1 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+09 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1B bndcn 0x3\(%ecx,%eax,1\), %bnd1 > GAS LISTING .* > > > -[ ]*31[ ]+\?\?\?\? 670F1B44 bndstx %bnd0, 0x3\(%eax,%ebx,1\) > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*31[ ]+1803 > -[ ]*32[ ]+\?\?\?\? 670F1B53 bndstx %bnd2, 3\(%ebx,1\) > +[ ]*[1-9][0-9]*[ ]+4C0103 > +[ ]*[1-9][0-9]*[ ]+bndcn %ecx, %bnd1 > +[ ]*[1-9][0-9]*[ ]+bndcn %cx, %bnd1 > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndstx > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B44 bndstx %bnd0, 0x3\(%eax,%ebx,1\) > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+1803 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B53 bndstx %bnd2, 3\(%ebx,1\) > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*32[ ]+03 > -[ ]*33[ ]+\?\?\?\? 410F1B0C bndstx %bnd1, \(%r15,%rax,2\) > +[ ]*[1-9][0-9]*[ ]+03 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 410F1B0C bndstx %bnd1, \(%r15,%rax,2\) > .* Warning: register scaling is being ignored here > -[ ]*33[ ]+47 > -[ ]*34[ ]+bndstx %bnd3, base\(%rip\) > -[ ]*35[ ]+\?\?\?\? 670F1B0D bndstx %bnd1, base\(%eip\) > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*35[ ]+[0-9a-f][0-9a-f][0-9a-f]00000 > -[ ]*36[ ]+ > -[ ]*37[ ]+\#\#\# bndldx > -[ ]*38[ ]+\?\?\?\? 670F1A44 bndldx 0x3\(%eax,%ebx,1\), %bnd0 > +[ ]*[1-9][0-9]*[ ]+47 > +[ ]*[1-9][0-9]*[ ]+bndstx %bnd3, base\(%rip\) > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B0D bndstx %bnd1, base\(%eip\) > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+[0-9a-f][0-9a-f][0-9a-f]00000 > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndldx > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1A44 bndldx 0x3\(%eax,%ebx,1\), %bnd0 > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*38[ ]+1803 > -[ ]*39[ ]+\?\?\?\? 670F1A53 bndldx 3\(%ebx,1\), %bnd2 > +[ ]*[1-9][0-9]*[ ]+1803 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1A53 bndldx 3\(%ebx,1\), %bnd2 > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*39[ ]+03 > -[ ]*40[ ]*\?\?\?\? 420F1A1C bndldx \(%rax,%r15,4\), %bnd3 > +[ ]*[1-9][0-9]*[ ]+03 > +[ ]*[1-9][0-9]*[ ]*\?\?\?\? 420F1A1C bndldx \(%rax,%r15,4\), %bnd3 > .* Warning: register scaling is being ignored here > -[ ]*40[ ]*B8 > -[ ]*41[ ]*bndldx base\(%rip\), %bnd1 > -[ ]*42[ ]*\?\?\?\? 670F1A1D bndldx base\(%eip\), %bnd3 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*42[ ]*[0-9a-f][0-9a-f][0-9a-f]00000 > -[ ]*43[ ]+ > -[ ]*44[ ]+\.intel_syntax noprefix > -[ ]*45[ ]+\?\?\?\? 67F30F1B bndmk bnd1, \[eax\] > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*45[ ]+08 > -[ ]*46[ ]+\?\?\?\? 67F30F1B bndmk bnd1, \[edx\+1\*eax\+0x3\] > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*46[ ]+4C0203 > -[ ]*47[ ]*bndmk bnd3, \[rip\] > -[ ]*48[ ]*\?\?\?\? 67F30F1B bndmk bnd2, \[eip\] > +[ ]*[1-9][0-9]*[ ]*B8 > +[ ]*[1-9][0-9]*[ ]*bndldx base\(%rip\), %bnd1 > +[ ]*[1-9][0-9]*[ ]*\?\?\?\? 670F1A1D bndldx base\(%eip\), %bnd3 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+[0-9a-f][0-9a-f][0-9a-f]00000 > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\.intel_syntax noprefix > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk bnd1, \[eax\] > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+08 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1B bndmk bnd1, \[edx\+1\*eax\+0x3\] > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+4C0203 > +[ ]*[1-9][0-9]*[ ]*bndmk bnd3, \[rip\] > +[ ]*[1-9][0-9]*[ ]*\?\?\?\? 67F30F1B bndmk bnd2, \[eip\] > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions. > -[ ]*48[ ]*15000000 > -[ ]*48[ ]*00 > -[ ]*49[ ]+ > -[ ]*50[ ]+\#\#\# bndmov > -[ ]*51[ ]+\?\?\?\? 67660F1A bndmov bnd1, \[eax\] > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*51[ ]+08 > -[ ]*52[ ]+\?\?\?\? 67660F1A bndmov bnd1, \[edx\+1\*eax\+0x3\] > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*52[ ]+4C0203 > -[ ]*53[ ]+ > -[ ]*54[ ]+\?\?\?\? 67660F1B bndmov \[eax\], bnd1 > +[ ]*[1-9][0-9]*[ ]*15000000 > +[ ]*[1-9][0-9]*[ ]*00 > +[ ]*[1-9][0-9]*[ ]+bndmk bnd2, \[rax\+rsp\] > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndmov > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1A bndmov bnd1, \[eax\] > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*54[ ]+08 > -[ ]*55[ ]+\?\?\?\? 67660F1B bndmov \[edx\+1\*eax\+0x3\], bnd1 > +[ ]*[1-9][0-9]*[ ]+08 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1A bndmov bnd1, \[edx\+1\*eax\+0x3\] > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*55[ ]+4C0203 > -[ ]*56[ ]+ > +[ ]*[1-9][0-9]*[ ]+4C0203 > +[ ]*[1-9][0-9]*[ ]+ > GAS LISTING .* > > > -[ ]*57[ ]+\#\#\# bndcl > -[ ]*58[ ]+\?\?\?\? 67F30F1A bndcl bnd1, \[eax\] > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1B bndmov \[eax\], bnd1 > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*58[ ]+08 > -[ ]*59[ ]+\?\?\?\? 67F30F1A bndcl bnd1, \[edx\+1\*eax\+0x3\] > +[ ]*[1-9][0-9]*[ ]+08 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67660F1B bndmov \[edx\+1\*eax\+0x3\], bnd1 > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*59[ ]+4C0203 > -[ ]*60[ ]+ > -[ ]*61[ ]+\#\#\# bndcu > -[ ]*62[ ]+\?\?\?\? 67F20F1A bndcu bnd1, \[eax\] > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*62[ ]+08 > -[ ]*63[ ]+\?\?\?\? 67F20F1A bndcu bnd1, \[edx\+1\*eax\+0x3\] > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*63[ ]+4C0203 > -[ ]*64[ ]+ > -[ ]*65[ ]+\#\#\# bndcn > -[ ]*66[ ]+\?\?\?\? 67F20F1B bndcn bnd1, \[eax\] > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*66[ ]+08 > -[ ]*67[ ]+\?\?\?\? 67F20F1B bndcn bnd1, \[edx\+1\*eax\+0x3\] > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*67[ ]+4C0203 > -[ ]*68[ ]+ > -[ ]*69[ ]+\#\#\# bndstx > -[ ]*70[ ]+\?\?\?\? 670F1B44 bndstx \[eax\+ebx\*1\+0x3\], bnd0 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*70[ ]+1803 > -[ ]*71[ ]+\?\?\?\? 670F1B14 bndstx \[1\*ebx\+3\], bnd2 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*71[ ]+1D030000 > -[ ]*71[ ]+00 > -[ ]*72[ ]+\?\?\?\? 410F1B14 bndstx \[r8\+rdi\*4\], bnd2 > +[ ]*[1-9][0-9]*[ ]+4C0203 > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcl > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1A bndcl bnd1, \[eax\] > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+08 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F30F1A bndcl bnd1, \[edx\+1\*eax\+0x3\] > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+4C0203 > +[ ]*[1-9][0-9]*[ ]+bndcl bnd1, eax > +[ ]*[1-9][0-9]*[ ]+bndcl bnd1, dx > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcu > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1A bndcu bnd1, \[eax\] > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+08 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1A bndcu bnd1, \[edx\+1\*eax\+0x3\] > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+4C0203 > +[ ]*[1-9][0-9]*[ ]+bndcu bnd1, eax > +[ ]*[1-9][0-9]*[ ]+bndcu bnd1, dx > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndcn > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1B bndcn bnd1, \[eax\] > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+08 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 67F20F1B bndcn bnd1, \[edx\+1\*eax\+0x3\] > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+4C0203 > +[ ]*[1-9][0-9]*[ ]+bndcn bnd1, eax > +[ ]*[1-9][0-9]*[ ]+bndcn bnd1, dx > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndstx > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B44 bndstx \[eax\+ebx\*1\+0x3\], bnd0 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+1803 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B14 bndstx \[1\*ebx\+3\], bnd2 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+1D030000 > +[ ]*[1-9][0-9]*[ ]+00 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 410F1B14 bndstx \[r8\+rdi\*4\], bnd2 > .* Warning: register scaling is being ignored here > -[ ]*72[ ]+B8 > -[ ]*73[ ]+bndstx \[rip\+base\], bnd1 > -[ ]*74[ ]+\?\?\?\? 670F1B1D bndstx \[eip\+base\], bnd3 > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*74[ ]+[0-9a-f][0-9a-f][0-9a-f]00000 > -[ ]*75[ ]+ > -[ ]*76[ ]+\#\#\# bndldx > -[ ]*77[ ]+\?\?\?\? 670F1A44 bndldx bnd0, \[eax\+ebx\*1\+0x3\] > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*77[ ]+1803 > -[ ]*78[ ]+\?\?\?\? 670F1A14 bndldx bnd2, \[1\*ebx\+3\] > -.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*78[ ]+1D030000 > -[ ]*78[ ]+00 > -[ ]*79[ ]+\?\?\?\? 420F1A14 bndldx bnd2, \[rdi\+r8\*8\] > +[ ]*[1-9][0-9]*[ ]+B8 > +[ ]*[1-9][0-9]*[ ]+bndstx \[rip\+base\], bnd1 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1B1D bndstx \[eip\+base\], bnd3 > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+[0-9a-f][0-9a-f][0-9a-f]00000 > +[ ]*[1-9][0-9]*[ ]+bndstx \[rax\+rsp\], bnd3 > +[ ]*[1-9][0-9]*[ ]+ > +[ ]*[1-9][0-9]*[ ]+\#\#\# bndldx > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1A44 bndldx bnd0, \[eax\+ebx\*1\+0x3\] > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > + GAS LISTING .* > + > + > +[ ]*[1-9][0-9]*[ ]+1803 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1A14 bndldx bnd2, \[1\*ebx\+3\] > +.* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > +[ ]*[1-9][0-9]*[ ]+1D030000 > +[ ]*[1-9][0-9]*[ ]+00 > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 420F1A14 bndldx bnd2, \[rdi\+r8\*8\] > .* Warning: register scaling is being ignored here > -[ ]*79[ ]+C7 > -[ ]*80[ ]+bndldx bnd1, \[rip\+base\] > -[ ]*81[ ]+\?\?\?\? 670F1A1D bndldx bnd3, \[eip\+base\] > +[ ]*[1-9][0-9]*[ ]+C7 > +[ ]*[1-9][0-9]*[ ]+bndldx bnd1, \[rip\+base\] > +[ ]*[1-9][0-9]*[ ]+\?\?\?\? 670F1A1D bndldx bnd3, \[eip\+base\] > .* Error: 32-bit address isn't allowed in 64-bit MPX instructions\. > -[ ]*81 [0-9a-f][0-9a-f][0-9a-f]00000 > +[ ]*[1-9][0-9]*[ ]+[0-9a-f][0-9a-f][0-9a-f]00000 > +[ ]*[1-9][0-9]*[ ]+bndldx bnd3, \[rax\+rsp\] > #pass > --- 2017-02-21/gas/testsuite/gas/i386/x86-64-mpx-inval-2.s > +++ 2017-02-21/gas/testsuite/gas/i386/x86-64-mpx-inval-2.s > @@ -18,14 +18,20 @@ > ### bndcl > bndcl (%ecx), %bnd1 > bndcl 0x3(%ecx,%eax,1), %bnd1 > + bndcl %ecx, %bnd1 > + bndcl %cx, %bnd1 > > ### bndcu > bndcu (%ecx), %bnd1 > bndcu 0x3(%ecx,%eax,1), %bnd1 > + bndcu %ecx, %bnd1 > + bndcu %cx, %bnd1 > > ### bndcn > bndcn (%ecx), %bnd1 > bndcn 0x3(%ecx,%eax,1), %bnd1 > + bndcn %ecx, %bnd1 > + bndcn %cx, %bnd1 > > ### bndstx > bndstx %bnd0, 0x3(%eax,%ebx,1) > @@ -46,6 +52,7 @@ > bndmk bnd1, [edx+1*eax+0x3] > bndmk bnd3, [rip] > bndmk bnd2, [eip] > + bndmk bnd2, [rax+rsp] > > ### bndmov > bndmov bnd1, [eax] > @@ -57,14 +64,20 @@ > ### bndcl > bndcl bnd1, [eax] > bndcl bnd1, [edx+1*eax+0x3] > + bndcl bnd1, eax > + bndcl bnd1, dx > > ### bndcu > bndcu bnd1, [eax] > bndcu bnd1, [edx+1*eax+0x3] > + bndcu bnd1, eax > + bndcu bnd1, dx > > ### bndcn > bndcn bnd1, [eax] > bndcn bnd1, [edx+1*eax+0x3] > + bndcn bnd1, eax > + bndcn bnd1, dx > > ### bndstx > bndstx [eax+ebx*1+0x3], bnd0 > @@ -72,6 +85,7 @@ > bndstx [r8+rdi*4], bnd2 > bndstx [rip+base], bnd1 > bndstx [eip+base], bnd3 > + bndstx [rax+rsp], bnd3 > > ### bndldx > bndldx bnd0, [eax+ebx*1+0x3] > @@ -79,3 +93,4 @@ > bndldx bnd2, [rdi+r8*8] > bndldx bnd1, [rip+base] > bndldx bnd3, [eip+base] > + bndldx bnd3, [rax+rsp] > > OK. Thanks. -- H.J.