# fr30 testcase for div0s $Ri # mach(): fr30 .include "testutils.inc" START .text .global div0s div0s: ; Test div0s $Rj,$Ri ; example from the manual - negative dividend mvi_h_gr 0x0fffffff,r2 mvi_h_dr 0x00000000,mdh mvi_h_dr 0xfffffff0,mdl set_dbits 0x0 ; Set opposite of expected set_cc 0x0f ; Condition codes should not change div0s r2 test_cc 1 1 1 1 test_h_gr 0x0fffffff,r2 test_h_dr 0xffffffff,mdh test_h_dr 0xfffffff0,mdl test_dbits 0x3 ; negative divisor mvi_h_gr 0xffffffff,r2 mvi_h_dr 0xffffffff,mdh mvi_h_dr 0x7fffffff,mdl set_dbits 0x1 ; Set opposite of expected set_cc 0x0f ; Condition codes should not change div0s r2 test_cc 1 1 1 1 test_h_gr 0xffffffff,r2 test_h_dr 0x00000000,mdh test_h_dr 0x7fffffff,mdl test_dbits 0x2 ; Both sign bits 0 mvi_h_gr 0x0fffffff,r2 mvi_h_dr 0xffffffff,mdh mvi_h_dr 0x7ffffff0,mdl set_dbits 0x3 ; Set opposite of expected set_cc 0x0f ; Condition codes should not change div0s r2 test_cc 1 1 1 1 test_h_gr 0x0fffffff,r2 test_h_dr 0x00000000,mdh test_h_dr 0x7ffffff0,mdl test_dbits 0x0 ; Both sign bits 1 mvi_h_gr 0xffffffff,r2 mvi_h_dr 0x00000000,mdh mvi_h_dr 0xffffffff,mdl set_dbits 0x2 ; Set opposite of expected set_cc 0x0f ; Condition codes should not change div0s r2 test_cc 1 1 1 1 test_h_gr 0xffffffff,r2 test_h_dr 0xffffffff,mdh test_h_dr 0xffffffff,mdl test_dbits 0x1 pass