184 lines
3.4 KiB
ArmAsm
184 lines
3.4 KiB
ArmAsm
test_divdu_1:
|
|
#_ REGISTER_IN r4 1
|
|
#_ REGISTER_IN r5 2
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 0
|
|
#_ REGISTER_OUT r4 1
|
|
#_ REGISTER_OUT r5 2
|
|
|
|
test_divdu_1_constant:
|
|
li r4, 1
|
|
li r5, 2
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 0
|
|
#_ REGISTER_OUT r4 1
|
|
#_ REGISTER_OUT r5 2
|
|
|
|
# TODO(benvanik): x64 ignore divide by zero (=0)
|
|
#test_divdu_2:
|
|
# #_ REGISTER_IN r4 1
|
|
# #_ REGISTER_IN r5 0
|
|
# divdu r3, r4, r5
|
|
# blr
|
|
# #_ REGISTER_OUT r3 0
|
|
# #_ REGISTER_OUT r4 1
|
|
# #_ REGISTER_OUT r5 0
|
|
|
|
# TODO(benvanik): x64 ignore divide by zero (=0)
|
|
#test_divdu_2_constant:
|
|
# li r4, 1
|
|
# li r5, 0
|
|
# divdu r3, r4, r5
|
|
# blr
|
|
# #_ REGISTER_OUT r3 0
|
|
# #_ REGISTER_OUT r4 1
|
|
# #_ REGISTER_OUT r5 0
|
|
|
|
test_divdu_3:
|
|
#_ REGISTER_IN r4 2
|
|
#_ REGISTER_IN r5 1
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 2
|
|
#_ REGISTER_OUT r4 2
|
|
#_ REGISTER_OUT r5 1
|
|
|
|
test_divdu_3_constant:
|
|
li r4, 2
|
|
li r5, 1
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 2
|
|
#_ REGISTER_OUT r4 2
|
|
#_ REGISTER_OUT r5 1
|
|
|
|
test_divdu_4:
|
|
#_ REGISTER_IN r4 35
|
|
#_ REGISTER_IN r5 7
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 5
|
|
#_ REGISTER_OUT r4 35
|
|
#_ REGISTER_OUT r5 7
|
|
|
|
test_divdu_4_constant:
|
|
li r4, 35
|
|
li r5, 7
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 5
|
|
#_ REGISTER_OUT r4 35
|
|
#_ REGISTER_OUT r5 7
|
|
|
|
test_divdu_5:
|
|
#_ REGISTER_IN r4 0
|
|
#_ REGISTER_IN r5 1
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 0
|
|
#_ REGISTER_OUT r4 0
|
|
#_ REGISTER_OUT r5 1
|
|
|
|
test_divdu_5_constant:
|
|
li r4, 0
|
|
li r5, 1
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 0
|
|
#_ REGISTER_OUT r4 0
|
|
#_ REGISTER_OUT r5 1
|
|
|
|
test_divdu_6:
|
|
#_ REGISTER_IN r4 0xFFFFFFFFFFFFFFFF
|
|
#_ REGISTER_IN r5 1
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFFFFF
|
|
#_ REGISTER_OUT r4 0xFFFFFFFFFFFFFFFF
|
|
#_ REGISTER_OUT r5 1
|
|
|
|
test_divdu_6_constant:
|
|
li r4, -1
|
|
li r5, 1
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFFFFF
|
|
#_ REGISTER_OUT r4 0xFFFFFFFFFFFFFFFF
|
|
#_ REGISTER_OUT r5 1
|
|
|
|
test_divdu_7:
|
|
#_ REGISTER_IN r4 0xFFFFFFFFFFFFFFFF
|
|
#_ REGISTER_IN r5 0xFFFFFFFFFFFFFFFF
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 1
|
|
#_ REGISTER_OUT r4 0xFFFFFFFFFFFFFFFF
|
|
#_ REGISTER_OUT r5 0xFFFFFFFFFFFFFFFF
|
|
|
|
test_divdu_7_constant:
|
|
li r4, -1
|
|
li r5, -1
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 1
|
|
#_ REGISTER_OUT r4 0xFFFFFFFFFFFFFFFF
|
|
#_ REGISTER_OUT r5 0xFFFFFFFFFFFFFFFF
|
|
|
|
test_divdu_8:
|
|
#_ REGISTER_IN r4 1
|
|
#_ REGISTER_IN r5 0xFFFFFFFFFFFFFFFF
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 0
|
|
#_ REGISTER_OUT r4 1
|
|
#_ REGISTER_OUT r5 0xFFFFFFFFFFFFFFFF
|
|
|
|
test_divdu_8_constant:
|
|
li r4, 1
|
|
li r5, -1
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 0
|
|
#_ REGISTER_OUT r4 1
|
|
#_ REGISTER_OUT r5 0xFFFFFFFFFFFFFFFF
|
|
|
|
test_divdu_9:
|
|
#_ REGISTER_IN r4 0x8000000000000000
|
|
#_ REGISTER_IN r5 -1
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 0
|
|
#_ REGISTER_OUT r4 0x8000000000000000
|
|
#_ REGISTER_OUT r5 -1
|
|
|
|
# TODO(benvanik): integer overflow (=0)
|
|
test_divdu_9_constant:
|
|
li r4, 1
|
|
sldi r4, r4, 63
|
|
li r5, -1
|
|
divdu r3, r4, r5
|
|
blr
|
|
#_ REGISTER_OUT r3 0
|
|
#_ REGISTER_OUT r4 0x8000000000000000
|
|
#_ REGISTER_OUT r5 -1
|
|
|
|
test_divdu_10:
|
|
#_ REGISTER_IN r0 0x1
|
|
#_ REGISTER_IN r3 0xFFFFFFFF
|
|
divdu. r0, r3, r0
|
|
blr
|
|
#_ REGISTER_OUT r0 0xFFFFFFFF
|
|
#_ REGISTER_OUT r3 0xFFFFFFFF
|
|
#_ REGISTER_OUT cr 0x0000000080000000
|
|
|
|
test_divdu_11:
|
|
#_ REGISTER_IN r0 0
|
|
#_ REGISTER_IN r3 0xFFFFFFFF
|
|
divdu. r0, r0, r3
|
|
blr
|
|
#_ REGISTER_OUT r0 0
|
|
#_ REGISTER_OUT r3 0xFFFFFFFF
|
|
#_ REGISTER_OUT cr 0x0000000020000000
|