120 lines
2.2 KiB
Text
120 lines
2.2 KiB
Text
# fr30 testcase for div2 $Ri
|
|
# mach(): fr30
|
|
|
|
.include "testutils.inc"
|
|
|
|
START
|
|
|
|
.text
|
|
.global div2
|
|
div2:
|
|
; Test div2 $Ri
|
|
; example from the manual -- all status bits 0
|
|
mvi_h_gr 0x00ffffff,r2
|
|
mvi_h_dr 0x00ffffff,mdh
|
|
mvi_h_dr 0x0000000f,mdl
|
|
set_dbits 0x0
|
|
set_cc 0x00
|
|
div2 r2
|
|
test_cc 0 1 0 0
|
|
test_dbits 0x0
|
|
test_h_gr 0x00ffffff,r2
|
|
test_h_dr 0x00000000,mdh
|
|
test_h_dr 0x0000000f,mdl
|
|
|
|
; D0 == 1
|
|
mvi_h_dr 0x00ffffff,mdh
|
|
set_dbits 0x1
|
|
set_cc 0x00
|
|
div2 r2
|
|
test_cc 0 1 0 0
|
|
test_dbits 0x1
|
|
test_h_gr 0x00ffffff,r2
|
|
test_h_dr 0x00000000,mdh
|
|
test_h_dr 0x0000000f,mdl
|
|
|
|
; D1 == 1
|
|
mvi_h_dr 0x00ffffff,mdh
|
|
set_dbits 0x2
|
|
set_cc 0x00
|
|
div2 r2
|
|
test_cc 0 0 0 0
|
|
test_dbits 0x2
|
|
test_h_gr 0x00ffffff,r2
|
|
test_h_dr 0x00ffffff,mdh
|
|
test_h_dr 0x0000000f,mdl
|
|
|
|
; D0 == 1, D1 == 1
|
|
set_dbits 0x3
|
|
set_cc 0x00
|
|
div2 r2
|
|
test_cc 0 0 0 0
|
|
test_dbits 0x3
|
|
test_h_gr 0x00ffffff,r2
|
|
test_h_dr 0x00ffffff,mdh
|
|
test_h_dr 0x0000000f,mdl
|
|
|
|
; C == 1
|
|
mvi_h_dr 0x11ffffee,mdh
|
|
mvi_h_gr 0x11ffffef,r2
|
|
set_dbits 0x0
|
|
set_cc 0x00
|
|
div2 r2
|
|
test_cc 0 0 0 1
|
|
test_dbits 0x0
|
|
test_h_gr 0x11ffffef,r2
|
|
test_h_dr 0x11ffffee,mdh
|
|
test_h_dr 0x0000000f,mdl
|
|
|
|
; D0 == 1, C == 1
|
|
mvi_h_dr 0x23ffffdc,mdh
|
|
mvi_h_gr 0x23ffffdd,r2
|
|
set_dbits 0x1
|
|
set_cc 0x00
|
|
div2 r2
|
|
test_cc 0 0 0 1
|
|
test_dbits 0x1
|
|
test_h_gr 0x23ffffdd,r2
|
|
test_h_dr 0x23ffffdc,mdh
|
|
test_h_dr 0x0000000f,mdl
|
|
|
|
; D1 == 1, C == 1
|
|
mvi_h_dr 0xfffffffd,mdh
|
|
mvi_h_gr 0x00000004,r2
|
|
set_dbits 0x2
|
|
set_cc 0x00
|
|
div2 r2
|
|
test_cc 0 0 0 1
|
|
test_dbits 0x2
|
|
test_h_gr 0x00000004,r2
|
|
test_h_dr 0xfffffffd,mdh
|
|
test_h_dr 0x0000000f,mdl
|
|
|
|
; D0 == 1, D1 == 1, C == 1
|
|
mvi_h_dr 0x00000002,mdh
|
|
mvi_h_gr 0xffffffff,r2
|
|
set_dbits 0x3
|
|
set_cc 0x00
|
|
div2 r2
|
|
test_cc 0 0 0 1
|
|
test_dbits 0x3
|
|
test_h_gr 0xffffffff,r2
|
|
test_h_dr 0x00000002,mdh
|
|
test_h_dr 0x0000000f,mdl
|
|
|
|
; remainder is zero
|
|
mvi_h_dr 0x00000004,mdh
|
|
mvi_h_gr 0x00000004,r2
|
|
set_dbits 0x0
|
|
set_cc 0x00
|
|
div2 r2
|
|
test_cc 0 1 0 0
|
|
test_dbits 0x0
|
|
test_h_gr 0x00000004,r2
|
|
test_h_dr 0x00000000,mdh
|
|
test_h_dr 0x0000000f,mdl
|
|
|
|
pass
|
|
|
|
|
|
|