summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2016-11-15 21:32:29 +0000
committerCamil Staps2016-11-15 21:32:29 +0000
commitc82f389a019426aaa9363325388c61736b333545 (patch)
treef56c388a85769801bbd52e5c587201b7bb9cca26
parentFix distance of 8 before lazy entries of higher order functions (diff)
Optimisation: pc can be Rd operand for ldr; nop at node entry not needed
-rw-r--r--cgthumb2was.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/cgthumb2was.c b/cgthumb2was.c
index 21dcedd..dade5a1 100644
--- a/cgthumb2was.c
+++ b/cgthumb2was.c
@@ -401,10 +401,6 @@ static void w_as_define_code_label (LABEL *label)
w_as_label (label->label_name);
w_as_colon();
w_as_newline();
-
- if (label->label_flags & NODE_ENTRY_LABEL) {
- w_as_instruction_without_parameters ("nop");
- }
}
static void w_as_internal_label (int label_number)
@@ -2353,10 +2349,7 @@ static void w_as_fmovel_instruction (struct instruction *instruction)
static void w_as_rts_instruction (void)
{
w_as_opcode ("ldr");
- fprintf (assembly_file,"lr,[sp],#4");
- w_as_newline_after_instruction();
- w_as_opcode ("mov");
- fprintf (assembly_file,"pc,lr");
+ fprintf (assembly_file,"pc,[sp],#4");
w_as_newline_after_instruction();
write_float_constants();