From 68ce0977828d61fb6ff95646dd8b647463887ab6 Mon Sep 17 00:00:00 2001 From: John van Groningen Date: Tue, 25 Jun 2013 10:05:54 +0000 Subject: use lea when generating position independent code for cmp with descriptor fix --- cgaas.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'cgaas.c') diff --git a/cgaas.c b/cgaas.c index 7063a66..8b5a4dc 100644 --- a/cgaas.c +++ b/cgaas.c @@ -2127,8 +2127,17 @@ static void as_cmp_instruction (struct instruction *instruction) if (pic_flag){ as_move_d_r (parameter_0.parameter_data.l,parameter_0.parameter_offset,REGISTER_O0); - parameter_0.parameter_type=P_REGISTER; - parameter_0.parameter_data.reg.r=REGISTER_O0; + switch (parameter_1.parameter_type){ + case P_REGISTER: + as_r_r (0071,parameter_1.parameter_data.reg.r,REGISTER_O0); + return; + case P_INDIRECT: + as_id_r (0071,parameter_1.parameter_offset,parameter_1.parameter_data.reg.r,REGISTER_O0); + return; + case P_INDEXED: + as_x_r (0071,parameter_1.parameter_offset,parameter_1.parameter_data.ir,REGISTER_O0); + return; + } } else #endif switch (parameter_1.parameter_type){ -- cgit v1.2.3