Automatic date update in version.in
[binutils-gdb.git] / sim / testsuite / frv / fr400 / udivi.cgs
blob69a7937a983c64713885f2c5460f6b227fb6bf49
1 # frv testcase for udivi $GRi,$s12,$GRk
2 # mach: fr400
4         .include "../testutils.inc"
6         start
8         .global udivi
9 udivi:
10         ; simple division 12 / 3
11         set_gr_immed    0x0000000c,gr3
12         udivi           gr3,3,gr3
13         test_gr_immed   0x00000004,gr3
15         ; random example
16         set_gr_limmed   0xfedc,0xba98,gr3
17         udivi           gr3,0x7ff,gr3
18         test_gr_limmed  0x001f,0xdf93,gr3
20         ; random example
21         set_gr_limmed   0xffff,0xffff,gr3
22         udivi           gr3,-2048,gr3
23         test_gr_immed   1,gr3
25         ; set up exception handler
26         set_psr_et      1
27         and_spr_immed   -4081,tbr       ; clear tbr.tt
28         set_gr_spr      tbr,gr17
29         inc_gr_immed    0x170,gr17      ; address of exception handler
30         set_bctrlr_0_0  gr17
31         set_spr_immed   128,lcr
32         set_gr_immed    0,gr15
34         ; divide by zero
35         set_spr_addr    ok1,lr
36 e1:     udivi           gr1,0,gr2       ; divide by zero
37         test_gr_immed   1,gr15
39         pass
41 ok1:    ; exception handler for divide by zero
42         test_spr_bits   0x18,3,0x1,isr          ; isr.dtt is set
43         test_spr_bits   0x0001,0,0x1,esr0       ; esr0 is valid
44         test_spr_bits   0x003e,1,0x13,esr0      ; esr0.ec is set
45         inc_gr_immed    1,gr15
46         rett            0
47         fail