Browse Source
2005-04-11 Jan Beulich <jbeulich@novell.com> * NEWS: Mention these changes and their effects. * macro.c (get_token): Use is_name_beginner/is_part_of_name/ is_name_ender. (check_macro): Likewise. (buffer_and_nest): Likewise. Permit multiple labels. Don't discard labels together with the closing pseudo-op. (macro_expand_body): Adjust comment. Range-check input before use. Adjust mis-spelled diagnostic. Use is_name_beginner. * read.c (try_macro): New. (read_a_source_file): New static variable last_eol. Don't list macro expansion lines more than once. Call try_macro. (s_macro): Set section of line_label to absolute instead of undefined. * doc/as.texinfo: Add information on the caveats of these changes. gas/testsuite/ 2005-04-11 Jan Beulich <jbeulich@novell.com> * gas/macros/dot.[ls]: New. * gas/macros/macros.exp: Run new test.msnyder-tracepoint-checkpoint-branch
9 changed files with 231 additions and 71 deletions
@ -0,0 +1,22 @@ |
|||
.*: Assembler messages: |
|||
.*:[1-9][0-9]*: Warning: attempt to redefine pseudo-op .\.macro. ignored |
|||
.*:27: Error: unknown pseudo-op: .\.xyz. |
|||
.*:28: Error: .* |
|||
(.* )?GAS .* |
|||
#... |
|||
[ ]*[1-9][0-9]*[ ]+m 4, 2 |
|||
[ ]*[1-9][0-9]*[ ]+> \.data |
|||
[ ]*[1-9][0-9]*[ ]+> labelA:labelB:labelC:labelD:x\.y\.z 4\+2 |
|||
[ ]*[1-9][0-9]*[ ]+>> \.align 4 |
|||
[ ]*[1-9][0-9]*[ ]+\?+[ ]+0606[ ]+>> \.byte 4\+2,4\+2 |
|||
[ ]*[1-9][0-9]*[ ]+\?+[ ]+0000[ ]+> \.skip 2 |
|||
[ ]*[1-9][0-9]*[ ]+> labelZ:labelY:labelX:labelW:\.xyz 4-2 |
|||
[ ]*[1-9][0-9]*[ ]+>> \.align 8 |
|||
[ ]*[1-9][0-9]*[ ]+\?+[ ]+0202[ ]+>> \.byte 4-2,4-2 |
|||
[ ]*[1-9][0-9]*[ ]+\?+[ ]+0000 ?0000[ ]+> \.skip 4\*2 |
|||
[ ]*[1-9][0-9]*[ ]+0000 ?0000[ ]* |
|||
[ ]*[1-9][0-9]*[ ]+> label9:label8:label7:label6: |
|||
[ ]*[1-9][0-9]*[ ]+ |
|||
[ ]*[1-9][0-9]*[ ]+\.purgem \.xyz, x\.y\.z |
|||
[ ]*[1-9][0-9]*[ ]+\.xyz 0 |
|||
[ ]*[1-9][0-9]*[ ]+x\.y\.z 0 |
|||
@ -0,0 +1,28 @@ |
|||
.altmacro |
|||
|
|||
.macro x.y.z val |
|||
.align 4 |
|||
.byte val, val |
|||
.endm |
|||
|
|||
.macro .xyz val |
|||
.align 8 |
|||
.byte val, val |
|||
.endm |
|||
|
|||
.macro .macro |
|||
.endm |
|||
|
|||
label1:label2 : label3 :label4: m: .macro arg.1, arg.2 |
|||
.data |
|||
labelA:labelB : labelC :labelD: x.y.z arg.1+arg.2 |
|||
.skip arg.2 |
|||
labelZ:labelY : labelX :labelW: .xyz arg.1-arg.2 |
|||
.skip arg.1*arg.2 |
|||
label9:label8 : label7 :label6: .endm |
|||
|
|||
m 4, 2 |
|||
|
|||
.purgem .xyz, x.y.z |
|||
.xyz 0 |
|||
x.y.z 0 |
|||
Loading…
Reference in new issue