* CXR test $Id$
sysclear
archmode esame
r 1a0=00000001800000000000000000000200 # z/Arch restart PSW
r 1d0=00000001800000000000000000000280 # z/Arch pgm new PSW
r 200=B7000320     # LCTL R0,R0,CTLR0  Set CR0 bit 45
r 204=B29D0324     # LFPC FPCREG       Load value into FPC register
r 208=E54C03280000 # MVHI COUNT,0      Clear error counter
r 20E=41000008     # LA R0,8           R0=Number of test data
r 212=41100800     # LA R1,TEST1       R1=>Test data table
r 216=41F00900     # LA R15,RES1       R15=>Result table
r 21A=1B88         # SR R8,R8          Clear CC register
r 21C=68401000     #A LD R4,0(,R1)     Load FPR4=TESTn
r 220=68601008     # LD R6,8(,R1)      Load FPR6=TESTn+8
r 224=68C01010     # LD R12,16(,R1)    Load FPR12=TESTn+16
r 228=68E01018     # LD R14,24(,R1)    Load FPR14=TESTn+24
r 22C=B369004C     # CXR R4,R12        Compare R4,R6 to R12,R14
r 230=B2220080     # IPM R8            R8=Cond code and pgm mask
r 234=5080F000     # ST R8,0(,R15)     Store CC in table
r 238=41F0F004     # LA R15,4(,R15)    R15=>next result table
r 23C=41101020     # LA R1,32(,R1)     R1=>Next TESTn
r 240=4600021C     # BCT R0,A          Loop to end of TEST table
r 244=41000900     # LA R0,RES1        R0->Actual results
r 248=41100020     # LA R1,4*8         R1=Length of results table
r 24C=41200C00     # LA R2,EXP1        R2->Expected results
r 250=1831         # LR R3,R1          R3=Length of results table
r 252=0F02         # CLCL R0,R2        Compare with expected results
r 254=477002FC     # BNE DIE           Error if not equal
r 258=B2B20300     # LPSWE WAITPSW     Load enabled wait PSW
r 2FC=B2B20310     #DIE LPSWE DISWAIT  Load disabled wait PSW
r 300=07020001800000000000000000AAAAAA # WAITPSW Enabled wait state PSW
r 310=00020001800000000000000000BADBAD # DISWAIT Disabled wait state PSW
r 320=00040000     # CTLR0             Control register 0 (bit45 AFP control)
r 324=00000000     # FPCREG            Floating point control register
r 328=00000000     # COUNT             Error counter
* Test data
r 800=41C12543678475673312345678909872 # TEST1A
r 810=C3B23F5D612345680056384950738456 # TEST1B
r 820=40000000000000000000000000000000 # TEST2A
r 830=C0000000000000000000000000000000 # TEST2B
r 840=40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF # TEST3A
r 850=41100000000000000000000000000000 # TEST3B
r 860=7F8000017F7FC99E78EE000000000000 # TEST4A
r 870=7F8000017F7FC99E00EE000000000000 # TEST4B
r 880=00000000000000000000000000000000 # TEST5A
r 890=00000000000000000000000000000000 # TEST5B
r 8A0=00000000000000000000000000000000 # TEST6A
r 8B0=00000000000000000000000000000000 # TEST6B
r 8C0=00000000000000000000000000000000 # TEST7A
r 8D0=00000000000000000000000000000000 # TEST7B
r 8E0=00000000000000000000000000000000 # TEST8A
r 8F0=00000000000000000000000000000000 # TEST8B
* Expected condition codes
r C00=20000000                         # EXP1 CC=2
r C04=00000000                         # EXP2 CC=0
r C08=10000000                         # EXP3 CC=1
r C0C=00000000                         # EXP4 CC=0
r C10=00000000                         # EXP5 CC=0
r C14=00000000                         # EXP6 CC=0
r C18=00000000                         # EXP7 CC=0
r C1C=00000000                         # EXP8 CC=0
pgmtrace +7
restart
pause 1
* Display test data
r 800.100
* Display expected results
r C00.20
* Display actual results
r 900.20
