From a9985c33cbf9214c1a1de087b4491bf67f69f817 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Sat, 4 Aug 2018 21:29:58 -0700 Subject: 4481 --- subx/030check_operands.cc | 5 ++++- subx/031check_operand_bounds.cc | 2 +- subx/032pack_operands.cc | 2 +- subx/033non_code_segment.cc | 2 +- subx/035labels.cc | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/subx/030check_operands.cc b/subx/030check_operands.cc index 0a233272..74a44740 100644 --- a/subx/030check_operands.cc +++ b/subx/030check_operands.cc @@ -31,6 +31,9 @@ //: The actual opcodes (first 1-3 bytes of each instruction) will continue to //: be at the start of each line. The x86 instruction set is a mess, and //: opcodes often don't admit good names. +:(before "End Transforms") +// Begin Level-2 Transforms +// End Level-2 Transforms :(before "End Help Texts") put(Help, "instructions", @@ -58,7 +61,7 @@ cerr << " instructions\n"; cd # int ?? +error: 'cd' (software interrupt): missing imm8 operand -:(before "End Transforms") +:(before "End Level-2 Transforms") Transform.push_back(check_operands); :(code) diff --git a/subx/031check_operand_bounds.cc b/subx/031check_operand_bounds.cc index f72451a0..b373a48b 100644 --- a/subx/031check_operand_bounds.cc +++ b/subx/031check_operand_bounds.cc @@ -22,7 +22,7 @@ put(Operand_bound, "disp16", 1<<16); put(Operand_bound, "imm8", 1<<8); // no bound needed for imm32 -:(before "End Transforms") +:(before "End Level-2 Transforms") Transform.push_back(check_operand_bounds); :(code) void check_operand_bounds(/*const*/ program& p) { diff --git a/subx/032pack_operands.cc b/subx/032pack_operands.cc index 675d38fc..771e063a 100644 --- a/subx/032pack_operands.cc +++ b/subx/032pack_operands.cc @@ -41,7 +41,7 @@ b9 0x080490a7/imm32 # copy to ECX +transform: packing instruction 'b9 0x080490a7/imm32' +transform: instruction after packing: 'b9 a7 90 04 08' -:(before "End Transforms") +:(before "End Level-2 Transforms") Transform.push_back(pack_operands); :(code) diff --git a/subx/033non_code_segment.cc b/subx/033non_code_segment.cc index 720eefc2..88b27d3b 100644 --- a/subx/033non_code_segment.cc +++ b/subx/033non_code_segment.cc @@ -8,7 +8,7 @@ cd 0x80/imm8 cd 12/imm8 +error: 12/imm8: metadata imm8 is only allowed in the (first) code segment -:(before "End Transforms") +:(before "End Level-2 Transforms") Transform.push_back(ensure_operands_only_in_code_segments); :(code) void ensure_operands_only_in_code_segments(/*const*/ program& p) { diff --git a/subx/035labels.cc b/subx/035labels.cc index 1bbf9b5b..a6da02eb 100644 --- a/subx/035labels.cc +++ b/subx/035labels.cc @@ -11,7 +11,7 @@ loop: 05 0x0d0c0b0a/imm32 # add to EAX +transform: label 'loop' is at address 1 -:(before "End Transforms") +:(before "End Level-2 Transforms") Transform.push_back(rewrite_labels); :(code) -- cgit 1.4.1-2-gfad0