.org 0x8e | |
program_interruption_code: | |
.org 0x1d0 /* program new PSW */ | |
.quad 0,pgm | |
.org 0x200 /* lowcore padding */ | |
.globl _start | |
_start: | |
lmg %r0,%r1,cksm_args | |
cksm %r2,%r0 | |
c %r2,cksm_exp | |
jne failure | |
.insn rre,0xb2410000,%r2,%r15 /* cksm %r2,%r15 */ | |
failure: | |
lpswe failure_psw | |
pgm: | |
chhsi program_interruption_code,6 /* specification exception? */ | |
jne failure | |
lpswe success_psw | |
cksm_args: | |
.quad cksm_buf, 16 | |
cksm_buf: | |
.quad 0xaaaabbbbcccc0000, 0x12345678 | |
cksm_exp: | |
.long 0x89ab1234 | |
.align 8 | |
success_psw: | |
.quad 0x2000000000000,0xfff /* see is_special_wait_psw() */ | |
failure_psw: | |
.quad 0x2000000000000,0 /* disabled wait */ |