From 63e3ff7cca5437518f540261b34170ce80a47686 Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Wed, 29 Jun 2016 17:22:05 +0200 Subject: [PATCH] tccasm: Accept .balign --- tccasm.c | 3 ++- tcctok.h | 1 + tests/asmtest.S | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tccasm.c b/tccasm.c index 27645a8..6a46417 100644 --- a/tccasm.c +++ b/tccasm.c @@ -368,6 +368,7 @@ static void asm_parse_directive(TCCState *s1) sec = cur_text_section; switch(tok) { case TOK_ASMDIR_align: + case TOK_ASMDIR_balign: case TOK_ASMDIR_p2align: case TOK_ASMDIR_skip: case TOK_ASMDIR_space: @@ -381,7 +382,7 @@ static void asm_parse_directive(TCCState *s1) n = 1 << n; tok1 = TOK_ASMDIR_align; } - if (tok1 == TOK_ASMDIR_align) { + if (tok1 == TOK_ASMDIR_align || tok1 == TOK_ASMDIR_balign) { if (n < 0 || (n & (n-1)) != 0) tcc_error("alignment must be a positive power of two"); offset = (ind + n - 1) & -n; diff --git a/tcctok.h b/tcctok.h index 6e2a041..ec69908 100644 --- a/tcctok.h +++ b/tcctok.h @@ -305,6 +305,7 @@ DEF_ASMDIR(byte) /* must be first directive */ DEF_ASMDIR(word) DEF_ASMDIR(align) + DEF_ASMDIR(balign) DEF_ASMDIR(p2align) DEF_ASMDIR(skip) DEF_ASMDIR(space) diff --git a/tests/asmtest.S b/tests/asmtest.S index f4eb248..eb6305f 100644 --- a/tests/asmtest.S +++ b/tests/asmtest.S @@ -11,6 +11,7 @@ .align 8 .byte 1 /* .align 16, 0x90 gas is too clever for us with 0x90 fill */ + .balign 4, 0x92 .align 16, 0x91 /* 0x91 tests the non-clever behaviour */ .skip 3 .skip 15, 0x90