iterating using .irpc over a string such as "xxx xxx" is identical to iterating over "xxxxxx". only if the first character is a space will irpc see it: " xxx xxx" will be processed as " xxxxxx". this bug surfaced when attempting to write a macro to assemble character maps:
$ less chars.lst 1 ;# compile character map from data stored as "###### ###" 2 ;# the above should compile to the two bytes 0xfc 0x03 3 .macro CHR16X24 row 4 .equ packed, 0 5 .irpc pixel, "\row" 6 .equ packed, packed << 1 7 .ifeqs "\pixel", "#" 8 .equ packed, packed | 1 9 .endif 10 .endr 11 .byte packed >> 8, packed & 0xff 12 .endm 13 0000 0003 CHR16X24 " ## " 14 0002 03FF CHR16X24 "### ####### " 15 0004 3FFF CHR16X24 "#### ########## " 16 0006 FFFF CHR16X24 "################" DEFINED SYMBOLS *ABS*:00000000 fake NO UNDEFINED SYMBOLS chars.lst (END) if this is expected behavior, then the texinfo file should reflect that, instead of stating: "For each character in VALUE, SYMBOL is set to the character, and the sequence of statements is assembled." (under .irpc) the spaces aren't getting preprocessed out; inserting an '.ascii "\row"' statement into the above macro shows the correct string in all cases. this may already be fixed in a later version, or on other platforms than Cygwin. -- Summary: irpc skips all but first space in quoted string Product: binutils Version: 2.17 Status: NEW Severity: normal Priority: P2 Component: gas AssignedTo: unassigned at sources dot redhat dot com ReportedBy: jcomeau at unternet dot net CC: bug-binutils at gnu dot org GCC build triplet: i686-pc-cygwin GCC host triplet: i686-pc-cygwin GCC target triplet: i686-pc-cygwin http://sourceware.org/bugzilla/show_bug.cgi?id=3856 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils