| .text |
| .global test_dot_req_and_unreq |
| test_dot_req_and_unreq: |
| |
| # Check that builtin register alias 'r0' works. |
| add r0, r0, r0 |
| |
| # Create an alias for r0. |
| foo .req r0 |
| |
| # Check that it works. |
| add foo, foo, foo |
| |
| # Now remove the alias. |
| .unreq foo |
| |
| # And make sure that it no longer works. |
| add foo, foo, foo |
| |
| # Attempt to remove the builtin alias for r0. |
| .unreq r0 |
| |
| # That is ignored, so this should still work. |
| add r0, r0, r0 |
| |
| # Now attempt to re-alias foo. There used to be a bug whereby the |
| # first creation of an alias called foo would also create an alias |
| # called FOO, but the .unreq of foo would not delete FOO. Thus a |
| # second attempt at aliasing foo (to something different than |
| # before) would fail because the assembler would complain that FOO |
| # already existed. |
| foo .req r1 |
| |
| add foo, foo, foo |
| |
| # Check that the upper case alias was also recreated. |
| add FOO, FOO, FOO |
| |
| # Check that a second attempt to alias foo, using a mixed case |
| # verison of the name, will fail. |
| Foo .req r2 |