summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn van Groningen2005-01-10 11:59:49 +0000
committerJohn van Groningen2005-01-10 11:59:49 +0000
commit86d5d8ba6ea26eaf87bf12b4b5e326505f76b422 (patch)
tree1ffa668e35516e940da877ead4de667890cfaed8
parentremove some unused code (diff)
fix 4 byte alignment after replacing jmp with a compare, branch and jump to
next block, and then remove the latter jump
-rw-r--r--cgopt.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/cgopt.c b/cgopt.c
index 11f4d2e..5ef71ce 100644
--- a/cgopt.c
+++ b/cgopt.c
@@ -307,6 +307,9 @@ void optimize_jumps (void)
branch->instruction_icode=old_branch_instruction->instruction_icode;
branch->instruction_parameters[0]=old_branch_instruction->instruction_parameters[0];
+ if (block->block_next->block_begin_module)
+ block->block_next->block_link_module=1;
+
optimize_branch_jump (branch,new_jmp_label);
} else {
new_branch_instruction=(struct instruction*)fast_memory_allocate (sizeof (struct instruction)+sizeof (struct parameter));
@@ -361,6 +364,9 @@ void optimize_jumps (void)
branch->instruction_icode=old_branch_instruction->instruction_icode;
branch->instruction_parameters[0]=old_branch_instruction->instruction_parameters[0];
+ if (block->block_next->block_begin_module)
+ block->block_next->block_link_module=1;
+
optimize_branch_jump (branch,new_jmp_label);
new_cmp_instruction->instruction_next=branch;