mirror of
https://github.com/RRZE-HPC/OSACA.git
synced 2026-01-04 10:10:08 +01:00
fixed matching of section type descriptors
This commit is contained in:
@@ -72,11 +72,12 @@ class ParserX86ATT(BaseParser):
|
|||||||
)
|
)
|
||||||
directive_parameter = (
|
directive_parameter = (
|
||||||
pp.quotedString
|
pp.quotedString
|
||||||
| directive_option
|
^ directive_option
|
||||||
| identifier
|
^ identifier
|
||||||
| hex_number
|
^ hex_number
|
||||||
| decimal_number
|
^ decimal_number
|
||||||
| self.register
|
^ self.register
|
||||||
|
^ pp.Group(pp.Word(pp.alphanums + '_').setResultsName('name'))
|
||||||
)
|
)
|
||||||
commaSeparatedList = pp.delimitedList(pp.Optional(directive_parameter), delim=',')
|
commaSeparatedList = pp.delimitedList(pp.Optional(directive_parameter), delim=',')
|
||||||
self.directive = pp.Group(
|
self.directive = pp.Group(
|
||||||
|
|||||||
@@ -49,11 +49,16 @@ class TestParserX86ATT(unittest.TestCase):
|
|||||||
self._get_directive(self.parser, '\t.set\tL$set$0,LECIE1-LSCIE1').parameters,
|
self._get_directive(self.parser, '\t.set\tL$set$0,LECIE1-LSCIE1').parameters,
|
||||||
[{'name': 'L$set$0'}, {'name': 'LECIE1-LSCIE1'}])
|
[{'name': 'L$set$0'}, {'name': 'LECIE1-LSCIE1'}])
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self._get_directive(self.parser,
|
self._get_directive(
|
||||||
|
self.parser,
|
||||||
'\t.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support'
|
'\t.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support'
|
||||||
).parameters,
|
).parameters,
|
||||||
[{'name': v} for v in
|
[{'name': v} for v in
|
||||||
['__TEXT', '__eh_frame', 'coalesced', 'no_toc+strip_static_syms+live_support']])
|
['__TEXT', '__eh_frame', 'coalesced', 'no_toc+strip_static_syms+live_support']])
|
||||||
|
self.assertEqual(
|
||||||
|
self._get_directive(
|
||||||
|
self.parser, '\t.section\t__TEXT,__literal16,16byte_literals').parameters,
|
||||||
|
[{'name': v} for v in ['__TEXT', '__literal16', '16byte_literals']])
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self._get_directive(self.parser, '\t.align\t16,0x90').parameters[1], '0x90'
|
self._get_directive(self.parser, '\t.align\t16,0x90').parameters[1], '0x90'
|
||||||
)
|
)
|
||||||
@@ -164,7 +169,7 @@ class TestParserX86ATT(unittest.TestCase):
|
|||||||
instruction_form_3 = {
|
instruction_form_3 = {
|
||||||
'instruction': None,
|
'instruction': None,
|
||||||
'operands': [],
|
'operands': [],
|
||||||
'directive': {'name': 'quad', 'parameters': ['.2.3_2__kmpc_loc_pack.2']},
|
'directive': {'name': 'quad', 'parameters': [{'name': '.2.3_2__kmpc_loc_pack.2'}]},
|
||||||
'comment': 'qed',
|
'comment': 'qed',
|
||||||
'label': None,
|
'label': None,
|
||||||
'line': '.quad .2.3_2__kmpc_loc_pack.2 #qed',
|
'line': '.quad .2.3_2__kmpc_loc_pack.2 #qed',
|
||||||
|
|||||||
Reference in New Issue
Block a user