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