about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2018-09-01 20:48:18 -0700
committerKartik Agaram <vc@akkartik.com>2018-09-01 20:48:18 -0700
commitf39c01128dfc6e46828cbab992d4b9e0ba1cb1e5 (patch)
treef1bc5787a126b1b6a107174eaf7079cb48d6d674
parent9473d0d9015ad4a886c60362cd8bd9b108bd1112 (diff)
downloadmu-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