[PATCH] D13869: instruction 'align' in asm blocks works incorrectly with some cases of parameters

michael zuckerman via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 27 03:13:19 PDT 2015


m_zuckerman added inline comments.

================
Comment at: lib/MC/MCParser/AsmParser.cpp:4716
@@ -4715,3 +4714,1 @@
       unsigned Val = AR.Val;
-      OS << ".align " << Val;
-
----------------
m_zuckerman wrote:
> rnk wrote:
> > Most of your changes are unecessary. All you have to do is this change:
> >   OS << ".align";
> >   if (getContext().getAsmInfo()->getAlignmentIsInBytes())
> >     break;
> >   OS << ' ';
> 1. Actually we just need to do change from align to .align ,that all.
> ```
> case AOK_Align: {
>       OS << ".align";
> }
> ``` 
> 2. We don't need the extra space. 
> 3. We can check if the val < 32. (not must because there is another if test that doing that in  parseDirectiveAlign). 
> 4. see the table 
> ||**INOUT**|**OUTPUT**|**Meaning**|
> |Microsoft| N=Number|.align N|Aligns the next variable or instruction on a byte that is a multiple of number.|
> |Darwin|N = NUMBER 1<N<32|.align N|align_expression is a power of 2 (2^N)|
> |Other Os Is In Bytes| N=Number|.align N|Aligns the next variable or instruction on a byte that is a multiple of number.|
> All of the targets pass the value as it is. Except ,in the past Microsoft.
> Some of them treat this number as power of 2 jump next byte.
> Others treat as jump to the next byte that multiple of number. and this number is have log2.
> 
> 
This path was correct for Microsoft in the past.  And we can delete row number 4718 to 4720.

Actually we just need to do change from align to .align ,that all.
```
case AOK_Align: {
      OS << ".align";
      break;
}
```
2.We don't need the extra space .
3.We can check if the val < 32. (not must because there is another if test that doing that in parseDirectiveAlign so I agree with you about that).

All of the targets pass the value as it is. Except ,in the past Microsoft.
Some of them treat this number as power of 2 jump next byte.
Others treat as jump to the next byte that multiple of number. 




http://reviews.llvm.org/D13869





More information about the llvm-commits mailing list