diff options
| author | Michael Matz <matz@suse.de> | 2016-06-29 17:22:05 +0200 |
|---|---|---|
| committer | Michael Matz <matz@suse.de> | 2016-12-15 17:47:07 +0100 |
| commit | 63e3ff7cca5437518f540261b34170ce80a47686 (patch) | |
| tree | 91d21b9427b2c19349d61f4a2c482d565df89d65 | |
| parent | 8e4da42384164d6eb862665d907b3b1138da2f94 (diff) | |
| download | tinycc-63e3ff7cca5437518f540261b34170ce80a47686.tar.gz tinycc-63e3ff7cca5437518f540261b34170ce80a47686.tar.bz2 | |
tccasm: Accept .balign
| -rw-r--r-- | tccasm.c | 3 | ||||
| -rw-r--r-- | tcctok.h | 1 | ||||
| -rw-r--r-- | tests/asmtest.S | 1 |
3 files changed, 4 insertions, 1 deletions
@@ -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; @@ -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 |
