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