Lines Matching refs:ip
194 static inline int is_ra_save_ins(union mips_instruction *ip) in is_ra_save_ins() argument
208 if (mm_insn_16bit(ip->halfword[0])) { in is_ra_save_ins()
209 mmi.word = (ip->halfword[0] << 16); in is_ra_save_ins()
216 mmi.halfword[0] = ip->halfword[1]; in is_ra_save_ins()
217 mmi.halfword[1] = ip->halfword[0]; in is_ra_save_ins()
228 return (ip->i_format.opcode == sw_op || ip->i_format.opcode == sd_op) && in is_ra_save_ins()
229 ip->i_format.rs == 29 && in is_ra_save_ins()
230 ip->i_format.rt == 31; in is_ra_save_ins()
234 static inline int is_jump_ins(union mips_instruction *ip) in is_jump_ins() argument
247 mmi.word = (ip->halfword[0] << 16); in is_jump_ins()
251 ip->j_format.opcode == mm_jal32_op) in is_jump_ins()
253 if (ip->r_format.opcode != mm_pool32a_op || in is_jump_ins()
254 ip->r_format.func != mm_pool32axf_op) in is_jump_ins()
256 return ((ip->u_format.uimmediate >> 6) & mm_jalr_op) == mm_jalr_op; in is_jump_ins()
258 if (ip->j_format.opcode == j_op) in is_jump_ins()
260 if (ip->j_format.opcode == jal_op) in is_jump_ins()
262 if (ip->r_format.opcode != spec_op) in is_jump_ins()
264 return ip->r_format.func == jalr_op || ip->r_format.func == jr_op; in is_jump_ins()
268 static inline int is_sp_move_ins(union mips_instruction *ip) in is_sp_move_ins() argument
279 if (mm_insn_16bit(ip->halfword[0])) { in is_sp_move_ins()
282 mmi.word = (ip->halfword[0] << 16); in is_sp_move_ins()
288 return ip->mm_i_format.opcode == mm_addiu32_op && in is_sp_move_ins()
289 ip->mm_i_format.rt == 29 && ip->mm_i_format.rs == 29; in is_sp_move_ins()
292 if (ip->i_format.rs != 29 || ip->i_format.rt != 29) in is_sp_move_ins()
294 if (ip->i_format.opcode == addiu_op || ip->i_format.opcode == daddiu_op) in is_sp_move_ins()
303 union mips_instruction *ip = (void *) (((char *) info->func) - 1); in get_frame_info() local
305 union mips_instruction *ip = info->func; in get_frame_info()
313 if (!ip) in get_frame_info()
320 for (i = 0; i < max_insns; i++, ip++) { in get_frame_info()
322 if (is_jump_ins(ip)) in get_frame_info()
325 if (is_sp_move_ins(ip)) in get_frame_info()
328 if (mm_insn_16bit(ip->halfword[0])) in get_frame_info()
332 if (ip->halfword[0] & mm_addiusp_func) in get_frame_info()
334 tmp = (((ip->halfword[0] >> 1) & 0x1ff) << 2); in get_frame_info()
337 tmp = (ip->halfword[0] >> 1); in get_frame_info()
340 ip = (void *) &ip->halfword[1]; in get_frame_info()
341 ip--; in get_frame_info()
344 info->frame_size = - ip->i_format.simmediate; in get_frame_info()
348 if (info->pc_offset == -1 && is_ra_save_ins(ip)) { in get_frame_info()
350 ip->i_format.simmediate / sizeof(long); in get_frame_info()
373 union mips_instruction *ip = (void *)schedule; in get___schedule_addr() local
377 for (i = 0; i < max_insns; i++, ip++) { in get___schedule_addr()
378 if (ip->j_format.opcode == j_op) in get___schedule_addr()
379 return J_TARGET(ip, ip->j_format.target); in get___schedule_addr()