blob: af52e995a45a3b51f40a11c5d6da26454530d293 [file] [log] [blame]
.bundle_align_mode 5
# We use these macros to test each pattern at every offset from
# bundle alignment, i.e. [0,31].
.macro offset_sequence size, offset
.p2align 5
sequence_\size\()_offset_\offset\():
.if \offset
.space \offset, 0xf4
.endif
test_sequence \size
.endm
.macro test_offsets size
offset_sequence \size, 0
offset_sequence \size, 1
offset_sequence \size, 2
offset_sequence \size, 3
offset_sequence \size, 4
offset_sequence \size, 5
offset_sequence \size, 6
offset_sequence \size, 7
offset_sequence \size, 8
offset_sequence \size, 9
offset_sequence \size, 10
offset_sequence \size, 11
offset_sequence \size, 12
offset_sequence \size, 13
offset_sequence \size, 14
offset_sequence \size, 15
offset_sequence \size, 16
offset_sequence \size, 17
offset_sequence \size, 18
offset_sequence \size, 19
offset_sequence \size, 20
offset_sequence \size, 21
offset_sequence \size, 22
offset_sequence \size, 23
offset_sequence \size, 24
offset_sequence \size, 25
offset_sequence \size, 26
offset_sequence \size, 27
offset_sequence \size, 28
offset_sequence \size, 29
offset_sequence \size, 30
offset_sequence \size, 31
.endm
.macro test_sequence size
.bundle_lock
clc
.rept \size - 1
cld
.endr
.bundle_unlock
.endm
test_offsets 1
test_offsets 2
test_offsets 3
test_offsets 4
test_offsets 5
test_offsets 6
test_offsets 7
test_offsets 8
test_offsets 9
test_offsets 10
test_offsets 11
test_offsets 12
test_offsets 13
test_offsets 14
test_offsets 15
test_offsets 16
test_offsets 17
test_offsets 18
test_offsets 19
test_offsets 20
test_offsets 21
test_offsets 22
test_offsets 23
test_offsets 24
test_offsets 25
test_offsets 26
test_offsets 27
test_offsets 28
test_offsets 29
test_offsets 30
test_offsets 31
test_offsets 32
.p2align 5
# Nested .bundle_lock.
.bundle_lock
clc
.bundle_lock
cld
.bundle_unlock
clc
.bundle_unlock
.p2align 5
hlt