From ff783b94c7b973e86b1145e53a40926bb87eb47f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Reimar=20D=C3=B6ffinger?= Date: Tue, 20 Jan 2015 08:49:49 +0100 Subject: [PATCH] Add support for .p2align asm directive. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Reimar Döffinger --- tccasm.c | 8 ++++++++ tcctok.h | 1 + 2 files changed, 9 insertions(+) diff --git a/tccasm.c b/tccasm.c index 38efe1c5..d9c929c8 100644 --- a/tccasm.c +++ b/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"); diff --git a/tcctok.h b/tcctok.h index 735ccdd1..53d0659c 100644 --- a/tcctok.h +++ b/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) -- 2.11.4.GIT