fp_misc_stg: THEORY BEGIN IMPORTING fp_misc_unpack fpm_rd1(I: fpm_rd1in_t): fpm_rd2in_t = (# rdinp := rd_stg1(I`rdinp), origF := I`origF, cvtf2i := I`cvtf2i, cvtd2s := I`cvtd2s, OVFen := I`OVFen, UNFen := I`UNFen #); fpm_rd2(I: fpm_rd2in_t): fpu_out_t = LET rd2=rd_stg2(I`rdinp), rdi=rd2int_extract(rd2`adj`s, rd2`adj`f3) IN IF I`cvtf2i THEN (# result := rdi`i o fill[32](FALSE), exceptions := (# OVF:=FALSE, UNF:=FALSE, INX:=FALSE, DIVZ:=FALSE, INV:=rdi`ovf, UNIMPL:=FALSE #), double := FALSE #) ELSE IF I`cvtd2s AND (rd2`out`exceptions`OVF AND I`OVFen OR rd2`adj`TINY AND I`UNFen) THEN %%% unbeding tiny benutzen, da rd2`out`exc`UNF:=TINY OR LOSS (# result := I`origF, exceptions := (# OVF:=rd2`out`exceptions`OVF, UNF:=rd2`adj`TINY, INX:=FALSE, DIVZ:=FALSE, INV:=FALSE, UNIMPL:=FALSE #), double := TRUE #) ELSE rd2`out ENDIF ENDIF; END fp_misc_stg