5 from openpower
.decoder
.power_enums
import (
8 from openpower
.insndb
.core
import Database
10 import openpower
.oppc
.pc_code
as pc_code
11 import openpower
.oppc
.pc_lexer
as pc_lexer
12 import openpower
.oppc
.pc_parser
as pc_parser
13 import openpower
.oppc
.pc_pseudocode
as pc_pseudocode
16 lexer
= pc_lexer
.IndentLexer(debug
=False)
17 parser
= pc_parser
.Parser(lexer
=lexer
)
18 db
= Database(find_wiki_dir())
21 tree
= parser
.parse(code
="\n".join(insn
.pcode
))
22 for (level
, line
) in pc_pseudocode
.pseudocode(tree
):
24 except Exception as exc
:
31 src[64-XLEN:63] <- (RS)
36 result[n+8:n+19] <- DPD_TO_BCD(src[n+12:n+21])
37 result[n+20:n+31] <- DPD_TO_BCD(src[n+22:n+31])
38 RA <- result[64-XLEN:63]
40 if a < b then RT <- (RA)
43 tree
= parser
.parse(code
=code
)
45 for (level
, line
) in pc_pseudocode
.pseudocode(tree
):
46 print(f
"{' ' * 4 * level}{line}")
48 for (level
, line
) in pc_code
.code(name
="cdtbcd", root
=tree
):
49 print(f
"{' ' * 4 * level}{line}")