diff options
| author | Andrew Chambers <[email protected]> | 2021-10-16 02:59:26 +1300 |
|---|---|---|
| committer | Andrew Chambers <[email protected]> | 2021-10-16 02:59:26 +1300 |
| commit | fccfcc2043e56306935dff29e66c414fd6c0a6d0 (patch) | |
| tree | 859cbf877a44f7b7c328cfe32b260095c08cfb54 /main.c | |
| parent | 490cb559cc4713b43d38c5667e56abc2f52973f9 (diff) | |
Take section alignment into account for align directives.
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -799,9 +799,10 @@ static void assemble(void) { sb(0x00); break; case ASM_DIR_BALIGN: { - int64_t i, rem, amnt; + int64_t offset, i, rem, amnt; amnt = 0; - rem = cursection->hdr.sh_size % v->balign.align; + offset = cursection->hdr.sh_addralign + cursection->hdr.sh_size; + rem = offset % v->balign.align; if (rem) amnt = v->balign.align - rem; for (i = 0; i < amnt; i++) { |
