diff options
author | Kartik Agaram <vc@akkartik.com> | 2018-09-01 20:48:18 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2018-09-01 20:48:18 -0700 |
commit | f39c01128dfc6e46828cbab992d4b9e0ba1cb1e5 (patch) | |
tree | f1bc5787a126b1b6a107174eaf7079cb48d6d674 | |
parent | 9473d0d9015ad4a886c60362cd8bd9b108bd1112 (diff) | |
download | mu-f39c01128dfc6e46828cbab992d4b9e0ba1cb1e5.tar.gz |
4534
I'd been planning to add segment address computation after all labels were computed, including labels in the data segment (which isn't built yet). But now I realize that won't work, because labels in the data segment will require segment start addresses. We need to deal in absolute addresses rather than relative offsets as with the jump instructions that use code labels. Layer 34 is now broken by this change in a way that isn't obvious right now: it is oblivious to imm32 and disp32 operand tags that are now going to be present in the programs it sees. It's a lucky accident that everything still works, because we're only using segment names right now for the very first (code) segment in a program.
-rw-r--r-- | subx/034compute_segment_address.cc (renamed from subx/037compute_segment_address.cc) | 0 |
1 files changed, 0 insertions, 0 deletions
diff --git a/subx/037compute_segment_address.cc b/subx/034compute_segment_address.cc
index ee2b1bb4..ee2b1bb4 100644
--- a/subx/037compute_segment_address.cc
+++ b/subx/034compute_segment_address.cc
|