Add support for .p2align asm directive.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
This commit is contained in:
		
							parent
							
								
									fb6331e0fa
								
							
						
					
					
						commit
						ff783b94c7
					
				
					 2 changed files with 9 additions and 0 deletions
				
			
		
							
								
								
									
										8
									
								
								tccasm.c
									
										
									
									
									
								
							
							
						
						
									
										8
									
								
								tccasm.c
									
										
									
									
									
								
							|  | @ -335,11 +335,19 @@ static void asm_parse_directive(TCCState *s1) | |||
|     sec = cur_text_section; | ||||
|     switch(tok) { | ||||
|     case TOK_ASM_align: | ||||
|     case TOK_ASM_p2align: | ||||
|     case TOK_ASM_skip: | ||||
|     case TOK_ASM_space: | ||||
|         tok1 = tok; | ||||
|         next(); | ||||
|         n = asm_int_expr(s1); | ||||
|         if (tok1 == TOK_ASM_p2align) | ||||
|         { | ||||
|             if (n < 0 || n > 30) | ||||
|                 tcc_error("invalid p2align, must be between 0 and 30"); | ||||
|             n = 1 << n; | ||||
|             tok1 = TOK_ASM_align; | ||||
|         } | ||||
|         if (tok1 == TOK_ASM_align) { | ||||
|             if (n < 0 || (n & (n-1)) != 0) | ||||
|                 tcc_error("alignment must be a positive power of two"); | ||||
|  |  | |||
							
								
								
									
										1
									
								
								tcctok.h
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								tcctok.h
									
										
									
									
									
								
							|  | @ -258,6 +258,7 @@ | |||
|  DEF_ASM(byte) | ||||
|  DEF_ASM(word) | ||||
|  DEF_ASM(align) | ||||
|  DEF_ASM(p2align) | ||||
|  DEF_ASM(skip) | ||||
|  DEF_ASM(space) | ||||
|  DEF_ASM(string) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue