From owner-svn-src-head@FreeBSD.ORG Mon Mar 18 11:06:36 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 45F5F835; Mon, 18 Mar 2013 11:06:36 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 38690A88; Mon, 18 Mar 2013 11:06:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2I7f8Oj048037; Mon, 18 Mar 2013 07:41:08 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2I7f8LC048036; Mon, 18 Mar 2013 07:41:08 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201303180741.r2I7f8LC048036@svn.freebsd.org> From: Andrew Turner Date: Mon, 18 Mar 2013 07:41:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r248459 - head/contrib/binutils/gas/config X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Mar 2013 11:06:36 -0000 Author: andrew Date: Mon Mar 18 07:41:08 2013 New Revision: 248459 URL: http://svnweb.freebsd.org/changeset/base/248459 Log: Some ARM vmov similar to 'vmov.f32 s1, s2' will incorrectly have the second register added to the symbol table by the assembler. On further investigation it was found the problem was with the my_get_expression function. This is called by parse_big_immediate. Fix this by moving the call to parse_big_immediate to the end of the if, else if, ..., else block. Modified: head/contrib/binutils/gas/config/tc-arm.c Modified: head/contrib/binutils/gas/config/tc-arm.c ============================================================================== --- head/contrib/binutils/gas/config/tc-arm.c Mon Mar 18 07:02:58 2013 (r248458) +++ head/contrib/binutils/gas/config/tc-arm.c Mon Mar 18 07:41:08 2013 (r248459) @@ -5164,10 +5164,6 @@ parse_neon_mov (char **str, int *which_o Case 10: VMOV.F32 , # Case 11: VMOV.F64
, # */ inst.operands[i].immisfloat = 1; - else if (parse_big_immediate (&ptr, i) == SUCCESS) - /* Case 2: VMOV.
, # - Case 3: VMOV.
, # */ - ; else if ((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype, &optype)) != FAIL) { @@ -5207,6 +5203,10 @@ parse_neon_mov (char **str, int *which_o inst.operands[i++].present = 1; } } + else if (parse_big_immediate (&ptr, i) == SUCCESS) + /* Case 2: VMOV.
, # + Case 3: VMOV.
, # */ + ; else { first_error (_("expected or or operand"));