summaryrefslogtreecommitdiff
path: root/cgaas.c
diff options
context:
space:
mode:
authorJohn van Groningen2013-06-25 10:05:54 +0000
committerJohn van Groningen2013-06-25 10:05:54 +0000
commit68ce0977828d61fb6ff95646dd8b647463887ab6 (patch)
tree215f0943446294a7cf352fea4f914a43dfec99c6 /cgaas.c
parentuse lea when generating position independent code for cmp with descriptor (diff)
use lea when generating position independent code for cmp with descriptor fix
Diffstat (limited to 'cgaas.c')
-rw-r--r--cgaas.c13
1 files changed, 11 insertions, 2 deletions
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){