This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
This patch fixes some immediate-out-of-range errors for VBIC, VORR etc. on 64-bit hosts. On such hosts, the X_add_number field of expressions will be 64 bits wide. INT_MIN and INT_MAX are used to signify that any immediate may be accepted for parse_immediate: unfortunately on a 64-bit host, 0xff000000 for instance is then interpreted as a positive integer outside that range.
I've just made passing INT_MIN/INT_MAX disable the check instead, though I'm not very fond of that solution.
* config/tc-arm.c (parse_immediate): Handle 64-bit X_add_number case.
! /* If we're on a 64-bit host, then a 64-bit number can be returned using ! O_constant. We have to be careful not to break compilation for ! 32-bit X_add_number, though. */ ! if ((exp.X_add_number & ~0xffffffffl) != 0) ! { ! inst.operands[i].reg = ((exp.X_add_number >> 16) >> 16) & 0xffffffff; ! inst.operands[i].regisimm = 1; ! }
Cheers Nick
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |