1*a2e67072SMax Filippov#include "macros.inc" 2c09015ddSAnthony Liguori 3c09015ddSAnthony Liguoritest_suite rem 4c09015ddSAnthony Liguori 5c09015ddSAnthony Liguoritest remu_pp 6c09015ddSAnthony Liguori movi a2, 0x5a5a137f 7c09015ddSAnthony Liguori mov a3, a2 8c09015ddSAnthony Liguori movi a4, 0x137f5a5a 9c09015ddSAnthony Liguori movi a6, 0x0c5caa17 10c09015ddSAnthony Liguori remu a5, a2, a4 11c09015ddSAnthony Liguori assert eq, a5, a6 12c09015ddSAnthony Liguori remu a2, a2, a4 13c09015ddSAnthony Liguori assert eq, a2, a6 14c09015ddSAnthony Liguori remu a4, a3, a4 15c09015ddSAnthony Liguori assert eq, a4, a6 16c09015ddSAnthony Liguoritest_end 17c09015ddSAnthony Liguori 18c09015ddSAnthony Liguoritest remu_np 19c09015ddSAnthony Liguori movi a2, 0xa5a5137f 20c09015ddSAnthony Liguori mov a3, a2 21c09015ddSAnthony Liguori movi a4, 0x137f5a5a 22c09015ddSAnthony Liguori movi a6, 0x9aa40af 23c09015ddSAnthony Liguori remu a5, a2, a4 24c09015ddSAnthony Liguori assert eq, a5, a6 25c09015ddSAnthony Liguori remu a2, a2, a4 26c09015ddSAnthony Liguori assert eq, a2, a6 27c09015ddSAnthony Liguori remu a4, a3, a4 28c09015ddSAnthony Liguori assert eq, a4, a6 29c09015ddSAnthony Liguoritest_end 30c09015ddSAnthony Liguori 31c09015ddSAnthony Liguoritest remu_pn 32c09015ddSAnthony Liguori movi a2, 0x5a5a137f 33c09015ddSAnthony Liguori mov a3, a2 34c09015ddSAnthony Liguori movi a4, 0xf7315a5a 35c09015ddSAnthony Liguori movi a6, 0x5a5a137f 36c09015ddSAnthony Liguori remu a5, a2, a4 37c09015ddSAnthony Liguori assert eq, a5, a6 38c09015ddSAnthony Liguori remu a2, a2, a4 39c09015ddSAnthony Liguori assert eq, a2, a6 40c09015ddSAnthony Liguori remu a4, a3, a4 41c09015ddSAnthony Liguori assert eq, a4, a6 42c09015ddSAnthony Liguoritest_end 43c09015ddSAnthony Liguori 44c09015ddSAnthony Liguoritest remu_nn 45c09015ddSAnthony Liguori movi a2, 0xf7315a5a 46c09015ddSAnthony Liguori mov a3, a2 47c09015ddSAnthony Liguori movi a4, 0xa5a5137f 48c09015ddSAnthony Liguori movi a6, 0x518c46db 49c09015ddSAnthony Liguori remu a5, a2, a4 50c09015ddSAnthony Liguori assert eq, a5, a6 51c09015ddSAnthony Liguori remu a2, a2, a4 52c09015ddSAnthony Liguori assert eq, a2, a6 53c09015ddSAnthony Liguori remu a4, a3, a4 54c09015ddSAnthony Liguori assert eq, a4, a6 55c09015ddSAnthony Liguoritest_end 56c09015ddSAnthony Liguori 57c09015ddSAnthony Liguoritest remu_exc 58c09015ddSAnthony Liguori set_vector kernel, 2f 59c09015ddSAnthony Liguori movi a2, 0xf7315a5a 60c09015ddSAnthony Liguori movi a4, 0x00000000 61c09015ddSAnthony Liguori1: 62c09015ddSAnthony Liguori remu a5, a2, a4 63c09015ddSAnthony Liguori test_fail 64c09015ddSAnthony Liguori2: 65c09015ddSAnthony Liguori rsr a2, exccause 66c09015ddSAnthony Liguori assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */ 67c09015ddSAnthony Liguori rsr a2, epc1 68c09015ddSAnthony Liguori movi a3, 1b 69c09015ddSAnthony Liguori assert eq, a2, a3 70c09015ddSAnthony Liguoritest_end 71c09015ddSAnthony Liguori 72c09015ddSAnthony Liguoritest rems_pp 73c09015ddSAnthony Liguori movi a2, 0x5a5a137f 74c09015ddSAnthony Liguori mov a3, a2 75c09015ddSAnthony Liguori movi a4, 0x137f5a5a 76c09015ddSAnthony Liguori movi a6, 0x0c5caa17 77c09015ddSAnthony Liguori rems a5, a2, a4 78c09015ddSAnthony Liguori assert eq, a5, a6 79c09015ddSAnthony Liguori rems a2, a2, a4 80c09015ddSAnthony Liguori assert eq, a2, a6 81c09015ddSAnthony Liguori rems a4, a3, a4 82c09015ddSAnthony Liguori assert eq, a4, a6 83c09015ddSAnthony Liguoritest_end 84c09015ddSAnthony Liguori 85c09015ddSAnthony Liguoritest rems_np 86c09015ddSAnthony Liguori movi a2, 0xa5a5137f 87c09015ddSAnthony Liguori mov a3, a2 88c09015ddSAnthony Liguori movi a4, 0x137f5a5a 89c09015ddSAnthony Liguori movi a6, 0xf3a27ce7 90c09015ddSAnthony Liguori rems a5, a2, a4 91c09015ddSAnthony Liguori assert eq, a5, a6 92c09015ddSAnthony Liguori rems a2, a2, a4 93c09015ddSAnthony Liguori assert eq, a2, a6 94c09015ddSAnthony Liguori rems a4, a3, a4 95c09015ddSAnthony Liguori assert eq, a4, a6 96c09015ddSAnthony Liguoritest_end 97c09015ddSAnthony Liguori 98c09015ddSAnthony Liguoritest rems_pn 99c09015ddSAnthony Liguori movi a2, 0x5a5a137f 100c09015ddSAnthony Liguori mov a3, a2 101c09015ddSAnthony Liguori movi a4, 0xf7315a5a 102c09015ddSAnthony Liguori movi a6, 0x02479b03 103c09015ddSAnthony Liguori rems a5, a2, a4 104c09015ddSAnthony Liguori assert eq, a5, a6 105c09015ddSAnthony Liguori rems a2, a2, a4 106c09015ddSAnthony Liguori assert eq, a2, a6 107c09015ddSAnthony Liguori rems a4, a3, a4 108c09015ddSAnthony Liguori assert eq, a4, a6 109c09015ddSAnthony Liguoritest_end 110c09015ddSAnthony Liguori 111c09015ddSAnthony Liguoritest rems_nn 112c09015ddSAnthony Liguori movi a2, 0xf7315a5a 113c09015ddSAnthony Liguori mov a3, a2 114c09015ddSAnthony Liguori movi a4, 0xa5a5137f 115c09015ddSAnthony Liguori movi a6, 0xf7315a5a 116c09015ddSAnthony Liguori rems a5, a2, a4 117c09015ddSAnthony Liguori assert eq, a5, a6 118c09015ddSAnthony Liguori rems a2, a2, a4 119c09015ddSAnthony Liguori assert eq, a2, a6 120c09015ddSAnthony Liguori rems a4, a3, a4 121c09015ddSAnthony Liguori assert eq, a4, a6 122c09015ddSAnthony Liguoritest_end 123c09015ddSAnthony Liguori 124c09015ddSAnthony Liguoritest rems_over 125c09015ddSAnthony Liguori movi a2, 0x80000000 126c09015ddSAnthony Liguori movi a4, 0xffffffff 127c09015ddSAnthony Liguori movi a6, 0 128c09015ddSAnthony Liguori rems a5, a2, a4 129c09015ddSAnthony Liguori assert eq, a5, a6 130c09015ddSAnthony Liguoritest_end 131c09015ddSAnthony Liguori 132c09015ddSAnthony Liguoritest rems_exc 133c09015ddSAnthony Liguori set_vector kernel, 2f 134c09015ddSAnthony Liguori movi a2, 0xf7315a5a 135c09015ddSAnthony Liguori movi a4, 0x00000000 136c09015ddSAnthony Liguori1: 137c09015ddSAnthony Liguori rems a5, a2, a4 138c09015ddSAnthony Liguori test_fail 139c09015ddSAnthony Liguori2: 140c09015ddSAnthony Liguori rsr a2, exccause 141c09015ddSAnthony Liguori assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */ 142c09015ddSAnthony Liguori rsr a2, epc1 143c09015ddSAnthony Liguori movi a3, 1b 144c09015ddSAnthony Liguori assert eq, a2, a3 145c09015ddSAnthony Liguoritest_end 146c09015ddSAnthony Liguori 147c09015ddSAnthony Liguoritest_suite_end 148