diff options
author | Kartik Agaram <vc@akkartik.com> | 2019-05-18 00:00:18 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2019-05-18 00:45:12 -0700 |
commit | 83c67014034bbf9072d7e4555b0e51e815a95756 (patch) | |
tree | cf52127783efc20bbe8d903d96e73bc51a1f752d /subx/038---literal_strings.cc | |
parent | 4b506b630ce28b3574a9f903904588f92dd3a1c1 (diff) | |
download | mu-83c67014034bbf9072d7e4555b0e51e815a95756.tar.gz |
switch to new syntax for segment headers in C++
Diffstat (limited to 'subx/038---literal_strings.cc')
-rw-r--r-- | subx/038---literal_strings.cc | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/subx/038---literal_strings.cc b/subx/038---literal_strings.cc index 9b2c3902..ecc80176 100644 --- a/subx/038---literal_strings.cc +++ b/subx/038---literal_strings.cc @@ -5,9 +5,9 @@ void test_transform_literal_string() { run( - "== code\n" + "== code 0x1\n" "b8/copy \"test\"/imm32\n" - "== data\n" // need to manually create the segment for now + "== data 0x2000\n" // need an empty segment ); CHECK_TRACE_CONTENTS( "transform: -- move literal strings to data segment\n" @@ -30,8 +30,8 @@ int Next_auto_global = 1; void transform_literal_strings(program& p) { trace(3, "transform") << "-- move literal strings to data segment" << end(); if (p.segments.empty()) return; - segment& code = p.segments.at(0); - segment data; + segment& code = *find(p, "code"); + segment& data = *find(p, "data"); for (int i = 0; i < SIZE(code.lines); ++i) { line& inst = code.lines.at(i); for (int j = 0; j < SIZE(inst.words); ++j) { @@ -45,13 +45,6 @@ void transform_literal_strings(program& p) { } trace(99, "transform") << "instruction after transform: '" << data_to_string(inst) << "'" << end(); } - if (data.lines.empty()) return; - if (SIZE(p.segments) < 2) { - p.segments.resize(2); - p.segments.at(1).lines.swap(data.lines); - } - vector<line>& existing_data = p.segments.at(1).lines; - existing_data.insert(existing_data.end(), data.lines.begin(), data.lines.end()); } void add_global_to_data_segment(const string& name, const word& value, segment& data) { |