In my ongoing work on refactoring the asmprinters, I've found that PIC16 doesn't put ':' after labels in some cases. Specifically, it looks like basic block labels are emitted without a ':': movwf @__floatunsidf.frame. + 2 movlp .BB1_2 goto .BB1_2 .BB1_2 ; %bb7 movlw 0 banksel @__floatunsidf.frame. but that functions and global variables are. Does lack of a colon mean that the label is private to the file? Is a colon on the basic block harmful (IOW, can I just emit basic block labels with a colon even though they aren't currently)? -Chris
Chris Lattner wrote:> In my ongoing work on refactoring the asmprinters, I've found that > PIC16 doesn't put ':' after labels in some cases. Specifically, it > looks like basic block labels are emitted without a ':': > > movwf @__floatunsidf.frame. + 2 > movlp .BB1_2 > goto .BB1_2 > .BB1_2 ; %bb7 > movlw 0 > banksel @__floatunsidf.frame. > > but that functions and global variables are. Does lack of a colon > mean that the label is private to the file? Is a colon on the basic > block harmful> (IOW, can I just emit basic block labels with a colon > even though they aren't currently)? >Yes. A ':' does not make any difference to pic16 labels. They are optional. - Sanjiv
On Sep 13, 2009, at 7:53 PM, Sanjiv Gupta wrote:> Chris Lattner wrote: >> In my ongoing work on refactoring the asmprinters, I've found that >> PIC16 doesn't put ':' after labels in some cases. Specifically, >> it looks like basic block labels are emitted without a ':': >> >> movwf @__floatunsidf.frame. + 2 >> movlp .BB1_2 >> goto .BB1_2 >> .BB1_2 ; %bb7 >> movlw 0 >> banksel @__floatunsidf.frame. >> >> but that functions and global variables are. Does lack of a colon >> mean that the label is private to the file? Is a colon on the >> basic block harmful > >> (IOW, can I just emit basic block labels with a colon even though >> they aren't currently)? >> > Yes. > A ':' does not make any difference to pic16 labels. > They are optional.Great, thanks Sanjiv! -Chris
Apparently Analagous Threads
- [LLVMdev] PIC16 question
- [LLVMdev] clobbering other physical registers in storeRegtoStackSlot.
- [LLVMdev] How to check for "SPARC code generation" in MachineBasicBlock.cpp?
- [LLVMdev] NVPTX CUDA_ERROR_NO_BINARY_FOR_GPU
- [LLVMdev] NVPTX CUDA_ERROR_NO_BINARY_FOR_GPU