http://sourceware.org/bugzilla/show_bug.cgi?id=14260
Bug #: 14260 Summary: ARM ldrt instruction causes an internal error. Product: binutils Version: 2.19 Status: NEW Severity: normal Priority: P2 Component: gas AssignedTo: unassig...@sourceware.org ReportedBy: m.lesniew...@samsung.com Classification: Unclassified Created attachment 6455 --> http://sourceware.org/bugzilla/attachment.cgi?id=6455 Source file, which can be used to reproduce the error. Using ldrt ARM instruction causes an internal error when the source address is in the literal pool. An example of an instruction, which causes such behavior: ldrt r0, =0x0 Trying to compile a file containing this instruction causes the following messages to be printed: foo.S: Assembler messages: foo.S:6: Internal error! Assertion failure in encode_arm_addr_mode_common at /home/docbrown/binutils/binutils-2.19/gas/config/tc-arm.c line 6262. Please report this bug I guess the error can be related to the fact, that the ldrt instruction requires a post-indexing addressing mode. Normally the second operand of the instruction is a register and the third operand is an offset (immediate value or register), for example: ldrt r0, [r1], #12 ; load one word at address [r1] to r0 and update r1 to r1 + 12 Of course, using ldrt to load constants from a literal pool makes no sense (or am I missing something?). I found the error because of a typo in my source file -- I wanted to use the ldr instruction instead of ldrt. Perhaps the assembler should not allow such kinds of instructions and automatically suggest using ldr instead of ldrt in cases like this. I attached a file, which can be used to reproduce the error. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils