diff options
| author | Graydon Hoare <[email protected]> | 2010-06-25 20:47:16 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-06-25 20:47:16 -0700 |
| commit | 37180552769b316e7239d047008f187127e630e6 (patch) | |
| tree | aad9385cf2d4d6b0d78c7d5e179ab50ad7e42cc1 /src/boot | |
| parent | Fix bad register use in GC sweep pass. (diff) | |
| download | rust-37180552769b316e7239d047008f187127e630e6.tar.xz rust-37180552769b316e7239d047008f187127e630e6.zip | |
Align emitted DATA_* elements -- tydescs in particular -- to 16 byte boundaries, so we can get our tag bit freed up.
Diffstat (limited to 'src/boot')
| -rw-r--r-- | src/boot/me/trans.ml | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/boot/me/trans.ml b/src/boot/me/trans.ml index a8b74fcf..98bf6bab 100644 --- a/src/boot/me/trans.ml +++ b/src/boot/me/trans.ml @@ -1016,6 +1016,9 @@ let trans_visitor let (cell, _) = trans_lval flv in (Il.Cell cell, fty) + and align x = + Asm.ALIGN_FILE (16, Asm.ALIGN_MEM(16, x)) + and trans_crate_rel_data_operand (d:data) (thunk:unit -> Asm.frag) @@ -1025,7 +1028,7 @@ let trans_visitor begin fun _ -> let fix = new_fixup "data item" in - let frag = Asm.DEF (fix, thunk()) in + let frag = align (Asm.DEF (fix, thunk())) in (fix, frag) end in @@ -1037,7 +1040,7 @@ let trans_visitor begin fun _ -> let fix = new_fixup "data item" in - let frag = Asm.DEF (fix, thunk()) in + let frag = align (Asm.DEF (fix, thunk())) in (fix, frag) end in |