Skip to content

Commit 073ac81

Browse files
committed
Fixes in Sail for the Base RV32I and insertion of placeholders for Synopsis and Description
Signed-off-by: Afonso Oliveira <[email protected]>
1 parent b7dcab3 commit 073ac81

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

parse.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -440,9 +440,13 @@ def make_asciidoc_encoding(instr_dict):
440440
'''
441441
asciidoc_content = ''
442442
asciidoc_content += '<<<\n'
443+
443444
for instr_name, instr_data in instr_dict.items():
445+
444446
encoding = instr_data['encoding']
445447
asciidoc_content += f'==== {instr_name.upper()}\n\n'
448+
asciidoc_content += make_asciidoc_synopsis (instr_name)
449+
asciidoc_content += make_asciidoc_mnemonic (instr_name, instr_data)
446450
asciidoc_content += 'Encoding::\n'
447451
asciidoc_content += '[wavedrom, , svg]\n'
448452
asciidoc_content += '....\n'
@@ -503,7 +507,8 @@ def make_asciidoc_encoding(instr_dict):
503507
asciidoc_content += ',\n'.join(reversed(bits))
504508
asciidoc_content += '\n]}\n'
505509
asciidoc_content += '....\n\n'
506-
asciidoc_content += make_asciidoc_mnemonic (instr_name, instr_data)
510+
511+
asciidoc_content += make_asciidoc_description (instr_name)
507512
asciidoc_content += make_asciidoc_argument_table(instr_name, instr_data)
508513
asciidoc_content += make_asciidoc_sail(instr_name)
509514
asciidoc_content += '<<<\n\n'
@@ -598,6 +603,9 @@ def make_asciidoc_mnemonic(instr_name, instr_data):
598603

599604
return asciidoc_content
600605

606+
def make_asciidoc_synopsis(instr_name):
607+
asciidoc_content = 'Synopsis:: \n\n'
608+
return asciidoc_content
601609

602610
def process_asciidoc_block(block, instr_name):
603611
'''
@@ -670,6 +678,9 @@ def process_asciidoc_block(block, instr_name):
670678
formatted_block = '\n'.join(new_block)
671679
return formatted_block
672680

681+
def make_asciidoc_description(instr_name):
682+
asciidoc_content = 'Description:: \n\n'
683+
return asciidoc_content
673684

674685
def find_matching_brace(text, start):
675686
count = 0
@@ -681,7 +692,7 @@ def find_matching_brace(text, start):
681692
if count == 0:
682693
return i
683694
return -1
684-
695+
685696
def make_asciidoc_sail(instr_name):
686697
file_path = "../sail-riscv/model/riscv_insts_base.sail"
687698
asciidoc_content = ""
@@ -699,17 +710,17 @@ def make_asciidoc_sail(instr_name):
699710
block = content[start:end+1]
700711

701712
if re.search(r'\b(' + re.escape(riscv_name) + r'|' + re.escape(instr_name.upper()) + r')\b', block):
702-
asciidoc_content += f"== Instruction {instr_name}\n\n"
713+
asciidoc_content += f"Sail Code:: \n\n"
703714
asciidoc_content += "[source,sail]\n"
704-
asciidoc_content += "----\n"
715+
asciidoc_content += "--\n"
705716
asciidoc_content += process_asciidoc_block(block, instr_name)
706-
asciidoc_content += "----\n\n"
717+
asciidoc_content += "\n--\n\n"
707718
return asciidoc_content # Return the AsciiDoc formatted string
708719

709720
if not asciidoc_content:
710721
print(f"{instr_name} NOT found")
711-
asciidoc_content += f"== Instruction {instr_name}\n\n"
712-
asciidoc_content += f"Instruction {instr_name} not found in the expected format.\n"
722+
asciidoc_content += f"Sail Code :: \n\n"
723+
asciidoc_content += f"Instruction {instr_name} sail code not found in the expected format.\n\n"
713724

714725
return asciidoc_content
715726

0 commit comments

Comments
 (0)