Sid Manning
2013-Feb-08 15:41 UTC
[LLVMdev] [llvm-commits] [RFC, AsmParser] How to handle '$' like '.' ?
On 01/24/2013 02:38 PM, Ulrich Weigand wrote:> > Hello, > > on PowerPC and a couple of other platforms, the GNU assembler allows using > a stand-alone '$' as part of an expression, and interprets it to refer to > the current PC just like '.'. (You can still use '$' as part of > identifiers otherwise.) For compatibility, we need to model the same > behaviour in the LLVM AsmParser. > > Unfortunately, there don't appear to be any existing hooks within the core > AsmParser expression parsing logic where target-specific behaviour like > this could be implemented. Any suggestions where this should be handled? > Thanks!Hi Ulrich, I started working on our target's parser recently and I have a similar issue with colons. The Hexagon assembler allows ':' in register assignment statements. An example would be, "r5:4 = r3:2" or "r5:4 = combine(r3, r2)" either of which will assign the contents of registers 3 and 2 to registers 5 and 4 respectively. I would like to add method, "colonIsLabel()" to the MCTargetAsmParser and then let this target defined method look at the statement. If it is not a label then break and let parseInstruction handle the statement otherwise treat it as a label. I have not seen any replies to your RFC but do you feel like this approach would be reasonable. Given the irregularities of assembly it seems like target specific methods will be needed for other notations as well. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation