about summary refs log tree commit diff stats
path: root/subx/035labels.cc
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-05-18 00:00:18 -0700
committerKartik Agaram <vc@akkartik.com>2019-05-18 00:45:12 -0700
commit83c67014034bbf9072d7e4555b0e51e815a95756 (patch)
treecf52127783efc20bbe8d903d96e73bc51a1f752d /subx/035labels.cc
parent4b506b630ce28b3574a9f903904588f92dd3a1c1 (diff)
downloadmu-83c67014034bbf9072d7e4555b0e51e815a95756.tar.gz
switch to new syntax for segment headers in C++
Diffstat (limited to 'subx/035labels.cc')
-rw-r--r--subx/035labels.cc28
1 files changed, 14 insertions, 14 deletions
diff --git a/subx/035labels.cc b/subx/035labels.cc
index f3131168..3c2d0dd8 100644
--- a/subx/035labels.cc
+++ b/subx/035labels.cc
@@ -23,7 +23,7 @@
 
 void test_entry_label() {
   run(
-      "== 0x1\n"  // code segment
+      "== code 0x1\n"
       "05 0x0d0c0b0a/imm32\n"
       "Entry:\n"
       "05 0x0d0c0b0a/imm32\n"
@@ -50,7 +50,7 @@ if (SIZE(s) == 2) return true;
 void test_pack_immediate_ignores_single_byte_nondigit_operand() {
   Hide_errors = true;
   transform(
-      "== 0x1\n"  // code segment
+      "== code 0x1\n"
       "b9/copy  a/imm32\n"
   );
   CHECK_TRACE_CONTENTS(
@@ -63,7 +63,7 @@ void test_pack_immediate_ignores_single_byte_nondigit_operand() {
 void test_pack_immediate_ignores_3_hex_digit_operand() {
   Hide_errors = true;
   transform(
-      "== 0x1\n"  // code segment
+      "== code 0x1\n"
       "b9/copy  aaa/imm32\n"
   );
   CHECK_TRACE_CONTENTS(
@@ -76,7 +76,7 @@ void test_pack_immediate_ignores_3_hex_digit_operand() {
 void test_pack_immediate_ignores_non_hex_operand() {
   Hide_errors = true;
   transform(
-      "== 0x1\n"  // code segment
+      "== code 0x1\n"
       "b9/copy xxx/imm32\n"
   );
   CHECK_TRACE_CONTENTS(
@@ -108,7 +108,7 @@ void check_valid_name(const string& s) {
 
 void test_map_label() {
   transform(
-      "== 0x1\n"  // code segment
+      "== code 0x1\n"
       "loop:\n"
       "  05  0x0d0c0b0a/imm32\n"
   );
@@ -123,7 +123,7 @@ Transform.push_back(rewrite_labels);
 void rewrite_labels(program& p) {
   trace(3, "transform") << "-- rewrite labels" << end();
   if (p.segments.empty()) return;
-  segment& code = p.segments.at(0);
+  segment& code = *find(p, "code");
   map<string, int32_t> byte_index;  // values are unsigned, but we're going to do subtractions on them so they need to fit in 31 bits
   compute_byte_indices_for_labels(code, byte_index);
   if (trace_contains_errors()) return;
@@ -278,7 +278,7 @@ string drop_last(const string& s) {
 
 void test_multiple_labels_at() {
   transform(
-      "== 0x1\n"  // code segment
+      "== code 0x1\n"
       // address 1
       "loop:\n"
       " $loop2:\n"
@@ -304,7 +304,7 @@ void test_multiple_labels_at() {
 
 void test_loading_label_as_imm32() {
   transform(
-      "== 0x1\n"
+      "== code 0x1\n"
       "label:\n"
       "  be/copy-to-ESI  label/imm32\n"
   );
@@ -317,7 +317,7 @@ void test_loading_label_as_imm32() {
 void test_duplicate_label() {
   Hide_errors = true;
   transform(
-      "== 0x1\n"
+      "== code 0x1\n"
       "loop:\n"
       "loop:\n"
       "    05  0x0d0c0b0a/imm32\n"
@@ -330,7 +330,7 @@ void test_duplicate_label() {
 void test_label_too_short() {
   Hide_errors = true;
   transform(
-      "== 0x1\n"
+      "== code 0x1\n"
       "xz:\n"
       "  05  0x0d0c0b0a/imm32\n"
   );
@@ -342,7 +342,7 @@ void test_label_too_short() {
 void test_label_hex() {
   Hide_errors = true;
   transform(
-      "== 0x1\n"
+      "== code 0x1\n"
       "0xab:\n"
       "  05  0x0d0c0b0a/imm32\n"
   );
@@ -354,7 +354,7 @@ void test_label_hex() {
 void test_label_negative_hex() {
   Hide_errors = true;
   transform(
-      "== 0x1\n"
+      "== code 0x1\n"
       "-a:\n"
       "    05  0x0d0c0b0a/imm32\n"
   );
@@ -368,10 +368,10 @@ void test_label_negative_hex() {
 
 void test_segment_size_ignores_labels() {
   transform(
-      "== code\n"  // 0x09000074
+      "== code 0x09000074\n"
       "  05/add  0x0d0c0b0a/imm32\n"  // 5 bytes
       "foo:\n"                        // 0 bytes
-      "== data\n"  // 0x0a000079
+      "== data 0x0a000000\n"
       "bar:\n"
       "  00\n"
   );