packages feed

linearscan-hoopl-0.6.0.0: test/Programs/Blocked.hs

module Programs.Blocked where

import Assembly
import LinearScan.Hoopl.DSL

regBlocked :: Program (Node IRVar)
regBlocked = do
    label "entry" $ do
        lc v23
        add v64 v64 pr11
        call 80
        jump "L61"

    label "L61" $ do
        add v86 v39 v98
        nop
        add v77 v47 v60
        add v71 v4 v5
        move v57 v18
        copy v20 v42
        offp v20 pr19 v19
        call 57
        add pr31 v99 pr4
        nop
        nop
        move pr5 v41
        add v47 v57 v98
        alloc (Just pr21) v28
        branch v26 "L44" "L9"

    label "L9" $ do
        copy v9 v52
        copy v42 v36
        branch v24 "L74" "L52"

    label "L52" $ do
        jump "L60"

    label "L74" $ do
        copy pr14 v8
        move v34 pr20
        branch v92 "L51" "L50"

    label "L50" $ do
        jump "L39"

    label "L51" $ do
        jump "L5"

    label "L5" $ do
        alloc (Just v3) v79
        move v81 v76
        lc v55
        call 21
        lc v70
        add v99 v20 v89
        lc v5
        move v72 pr12
        offp v90 pr13 v0
        lc v2
        offlpi v78
        branch pr21 "L29" "L49"

    label "L49" $ do
        jump "L60"

    label "L60" $ do
        lc v84
        move pr30 v47
        branch v0 "L33" "L18"

    label "L18" $ do
        call 22
        jump "L35"

    label "L35" $ do
        copy v91 pr19
        move v43 v91
        branch v37 "L48" "L17"

    label "L17" $ do
        move v66 v27
        jump "L10"

    label "L10" $ do
        add v9 pr11 pr29
        branch v54 "L98" "L21"

    label "L21" $ do
        move pr14 pr14
        copy v15 v43
        move v79 v77
        copy v4 v79
        call 61
        move pr13 v31
        alloc (Just v59) v37
        return_

    label "L98" $ do
        lc v25
        return_

    label "L33" $ do
        add v35 pr3 v59
        lc v42
        branch v62 "L94" "L63"

    label "L63" $ do
        move pr23 v47
        return_

    label "L94" $ do
        move v27 v74
        call 87
        add v48 pr2 v95
        copy v11 v92
        copy pr0 v35
        lc pr25
        copy v80 v59
        add pr28 v96 pr17
        move v92 v88
        move v77 v92
        jump "L40"

    label "L40" $ do
        branch v13 "L25" "L47"

    label "L47" $ do
        jump "L57"

    label "L57" $ do
        move v59 v3
        alloc (Just v27) pr6
        jump "L4"

    label "L4" $ do
        branch v59 "L12" "L46"

    label "L46" $ do
        jump "L48"

    label "L48" $ do
        jump "L61"

    label "L12" $ do
        branch v84 "L8" "L90"

    label "L90" $ do
        call 63
        offp v71 v37 pr15
        add v16 v91 v9
        call 18
        branch v100 "L53" "L15"

    label "L15" $ do
        nop
        add pr24 v23 v73
        jump "L66"

    label "L66" $ do
        branch v78 "L42" "L41"

    label "L41" $ do
        jump "L61"

    label "L42" $ do
        jump "L57"

    label "L53" $ do
        add v32 v3 pr16
        jump "L87"

    label "L87" $ do
        return_

    label "L8" $ do
        move v67 v2
        offlpi v85
        lc v39
        jump "L26"

    label "L26" $ do
        copy v58 v91
        return_

    label "L25" $ do
        move v5 pr30
        move pr12 v5
        move v74 v19
        copy pr1 v50
        branch v31 "L71" "L40"

    label "L71" $ do
        branch v42 "L39" "L0"

    label "L39" $ do
        offlpi v7
        branch v82 "L44" "L43"

    label "L43" $ do
        jump "L5"

    label "L44" $ do
        jump "L61"

    label "L29" $ do
        return_