diff options
author | alon@honor <none@none> | 2010-09-27 18:01:52 -0700 |
---|---|---|
committer | alon@honor <none@none> | 2010-09-27 18:01:52 -0700 |
commit | 03c175f81ddb6aeac0295193baeddc12fc692ef8 (patch) | |
tree | 691c30561298c7880d5f3c03d1dd4399dfd7f05d /src/parseTools.js | |
parent | f01feb071941d8bb83a9c1ca629d531a1d0ba627 (diff) |
cleanup parseGetElementPtr and ignore 'volatile'
Diffstat (limited to 'src/parseTools.js')
-rw-r--r-- | src/parseTools.js | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/parseTools.js b/src/parseTools.js index 8cbf0166..a2bb56ac 100644 --- a/src/parseTools.js +++ b/src/parseTools.js @@ -242,7 +242,7 @@ function parseParamTokens(params) { }); } } else if (segment[1].text === 'getelementptr') { - ret.push(parseGetElementPtr(segment)); + ret.push(parseFunctionCall(segment)); } else if (segment[1].text === 'bitcast') { ret.push(parseBitcast(segment)); } else { @@ -275,16 +275,17 @@ function cleanSegment(segment) { return segment; } -// Expects one of the several LVM getelementptr formats: -// a qualifier, a type, a null, then an () item with tokens -function parseGetElementPtr(segment) { -//print("Parse GTP: " + dump(segment)); +// Parses a function call of form +// TYPE functionname MODIFIERS (...) +// e.g. +// i32* getelementptr inbounds (...) +function parseFunctionCall(segment) { +//print("Parse functioncall: " + dump(segment)); segment = segment.slice(0); segment = cleanSegment(segment); assertTrue(['inreg', 'byval'].indexOf(segment[1].text) == -1); - //dprint('// zz: ' + dump(segment) + '\n\n\n'); var ret = { - intertype: 'getelementptr', + intertype: segment[1].text, type: segment[0], params: parseParamTokens(segment[3].item[0].tokens), }; |