diff options
author | John van Groningen | 2013-06-25 10:05:54 +0000 |
---|---|---|
committer | John van Groningen | 2013-06-25 10:05:54 +0000 |
commit | 68ce0977828d61fb6ff95646dd8b647463887ab6 (patch) | |
tree | 215f0943446294a7cf352fea4f914a43dfec99c6 /cgaas.c | |
parent | use 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.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -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){ |