mirror of
https://github.com/RRZE-HPC/OSACA.git
synced 2026-01-04 18:20:09 +01:00
added marker definition to marker_utils
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
|
||||||
from osaca.parser import ParserAArch64v81, ParserX86ATT
|
from osaca.parser import get_parser, ParserAArch64v81, ParserX86ATT
|
||||||
|
|
||||||
|
|
||||||
def reduce_to_section(kernel, isa):
|
def reduce_to_section(kernel, isa):
|
||||||
@@ -31,6 +31,35 @@ def find_marked_kernel_x86ATT(lines):
|
|||||||
return find_marked_section(lines, ParserX86ATT(), ['mov', 'movl'], 'ebx', [111, 222], nop_bytes)
|
return find_marked_section(lines, ParserX86ATT(), ['mov', 'movl'], 'ebx', [111, 222], nop_bytes)
|
||||||
|
|
||||||
|
|
||||||
|
def get_marker(isa):
|
||||||
|
"""Return tuple of start and end marker lines."""
|
||||||
|
if isa == 'x86':
|
||||||
|
start_marker_raw = (
|
||||||
|
'movl $111, %ebx # OSACA START MARKER\n'
|
||||||
|
'.byte 100 # OSACA START MARKER\n'
|
||||||
|
'.byte 103 # OSACA START MARKER\n'
|
||||||
|
'.byte 144 # OSACA START MARKER\n')
|
||||||
|
end_marker_raw = (
|
||||||
|
'movl $222, %ebx # OSACA END MARKER\n'
|
||||||
|
'.byte 100 # OSACA END MARKER\n'
|
||||||
|
'.byte 103 # OSACA END MARKER\n'
|
||||||
|
'.byte 144 # OSACA END MARKER\n')
|
||||||
|
elif isa == 'AArch64':
|
||||||
|
start_marker_raw = (
|
||||||
|
'mov x1, #111 // OSACA START MARKER\n'
|
||||||
|
'.byte 213,3,32,31 // OSACA START MARKER\n')
|
||||||
|
# After loop
|
||||||
|
end_marker_raw = (
|
||||||
|
'mov x1, #222 // OSACA END MARKER\n'
|
||||||
|
'.byte 213,3,32,31 // OSACA END MARKER\n')
|
||||||
|
|
||||||
|
parser = get_parser(isa)
|
||||||
|
start_marker = parser.parse_file(start_marker_raw)
|
||||||
|
end_marker = parser.parse_file(end_marker_raw)
|
||||||
|
|
||||||
|
return start_marker, end_marker
|
||||||
|
|
||||||
|
|
||||||
def find_marked_section(lines, parser, mov_instr, mov_reg, mov_vals, nop_bytes, reverse=False):
|
def find_marked_section(lines, parser, mov_instr, mov_reg, mov_vals, nop_bytes, reverse=False):
|
||||||
index_start = -1
|
index_start = -1
|
||||||
index_end = -1
|
index_end = -1
|
||||||
|
|||||||
Reference in New Issue
Block a user