Richard Sandiford
fc76e73056
include/opcode/
* mips.h (mips_decode_reg_operand): New function.
(INSN_WRITE_SHIFT, INSN_WRITE_1, INSN_WRITE_2, INSN_WRITE_ALL)
(INSN_READ_SHIFT, INSN_READ_1, INSN_READ_2, INSN_READ_3, INSN_READ_4)
(INSN_READ_ALL, INSN_READ_GPR_24, INSN_WRITE_GPR_24, INSN_UDI):
New macros.
(INSN_WRITE_GPR_D, INSN_WRITE_GPR_T, INSN_WRITE_FPR_D)
(INSN_WRITE_FPR_S, INSN_WRITE_FPR_T, INSN_READ_GPR_S, INSN_READ_GPR_T)
(INSN_READ_FPR_S, INSN_READ_FPR_T, INSN_READ_FPR_R, INSN_WRITE_GPR_S)
(INSN2_WRITE_GPR_Z, INSN2_WRITE_FPR_Z, INSN2_READ_GPR_Z)
(INSN2_READ_FPR_Z, INSN2_READ_GPR_D, INSN2_READ_FPR_D)
(INSN2_WRITE_GPR_MB, INSN2_READ_GPR_MC, INSN2_MOD_GPR_MD)
(INSN2_READ_GPR_ME, INSN2_MOD_GPR_MF, INSN2_READ_GPR_MG)
(INSN2_READ_GPR_MJ, INSN2_WRITE_GPR_MJ, INSN2_READ_GPR_MP)
(INSN2_WRITE_GPR_MP, INSN2_READ_GPR_MQ, INSN2_READ_GP)
(INSN2_WRITE_GPR_MH, INSN2_READ_GPR_MMN): Delete. Renumber other
macros to cover the gaps.
(INSN2_MOD_SP): Replace with...
(INSN2_WRITE_SP, INSN2_READ_SP): ...these new macros.
(MIPS16_INSN_WRITE_X, MIPS16_INSN_WRITE_Y, MIPS16_INSN_WRITE_Z)
(MIPS16_INSN_WRITE_T, MIPS16_INSN_WRITE_31, MIPS16_INSN_WRITE_GPR_Y)
(MIPS16_INSN_READ_X, MIPS16_INSN_READ_Y, MIPS16_INSN_READ_Z)
(MIPS16_INSN_READ_T, MIPS16_INSN_READ_SP, MIPS16_INSN_READ_GPR_X):
Delete.
opcodes/
* mips-opc.c (WR_1, WR_2, RD_1, RD_2, RD_3, RD_4, MOD_1, MOD_2, UDI):
New macros.
(WR_d, WR_t, WR_D, WR_T, WR_S, RD_s, RD_b, RD_t, RD_S, RD_T, RD_R)
(WR_z, WR_Z, RD_z, RD_Z, RD_d): Delete.
(mips_builtin_opcodes): Use the new position-based read-write flags
instead of field-based ones. Use UDI for "udi..." instructions.
* mips16-opc.c (WR_1, WR_2, RD_1, RD_2, RD_3, RD_4, MOD_1, MOD_2):
New macros.
(WR_x, WR_y, WR_z, WR_Y, RD_x, RD_y, RD_Z, RD_X): Delete.
(RD_T, WR_T, WR_31): Redefine using generic INSN_* flags.
(WR_SP, RD_16): New macros.
(RD_SP): Redefine as an INSN2_* flag.
(MOD_SP): Redefine in terms of RD_SP and WR_SP.
(mips16_opcodes): Use the new position-based read-write flags
instead of field-based ones. Use RD_16 for "nop". Move RD_SP to
pinfo2 field.
* micromips-opc.c (WR_1, WR_2, RD_1, RD_2, RD_3, RD_4, MOD_1, MOD_2):
New macros.
(WR_mb, RD_mc, RD_md, WR_md, RD_me, RD_mf, WR_mf, RD_mg, WR_mh, RD_mj)
(WR_mj, RD_ml, RD_mmn, RD_mp, WR_mp, RD_mq, RD_gp, WR_d, WR_t, WR_D)
(WR_T, WR_S, RD_s, RD_b, RD_t, RD_T, RD_S, RD_R, RD_D): Delete.
(RD_sp, WR_sp): Redefine to INSN2_READ_SP and INSN2_WRITE_SP.
(micromips_opcodes): Use the new position-based read-write flags
instead of field-based ones.
* mips-dis.c (print_insn_arg): Use mips_decode_reg_operand.
(print_insn_mips, print_insn_micromips): Use INSN_WRITE_1 instead
of field-based flags.
gas/
* config/tc-mips.c (MAX_OPERANDS): New macro.
(mips_operand_array): New structure.
(mips_operands, mips16_operands, micromips_operands): New arrays.
(micromips_to_32_reg_b_map, micromips_to_32_reg_c_map)
(micromips_to_32_reg_e_map, micromips_to_32_reg_f_map)
(micromips_to_32_reg_g_map, micromips_to_32_reg_l_map)
(micromips_to_32_reg_q_map): Delete.
(insn_operands, insn_opno, insn_extract_operand): New functions.
(validate_mips_insn): Take a mips_operand_array as argument and
use it to build up a list of operands. Extend to handle INSN_MACRO
and MIPS16.
(validate_mips16_insn): New function.
(validate_micromips_insn): Take a mips_operand_array as argument.
Handle INSN_MACRO.
(md_begin): Initialize mips_operands, mips16_operands and
micromips_operands. Call validate_mips_insn and
validate_micromips_insn for macro instructions too.
Call validate_mips16_insn for MIPS16 instructions.
(insn_read_mask, insn_write_mask, operand_reg_mask, insn_reg_mask):
New functions.
(gpr_read_mask, gpr_write_mask, fpr_read_mask, fpr_write_mask): Use
them. Handle INSN_UDI.
(get_append_method): Use gpr_read_mask.
2013-08-01 20:55:25 +00:00
..
2013-06-21 15:01:57 +00:00
2010-12-09 09:03:18 +00:00
2013-02-28 19:18:40 +00:00
2013-05-13 22:28:27 +00:00
2012-08-13 14:52:54 +00:00
2013-02-28 19:18:40 +00:00
2013-06-20 16:01:35 +00:00
2012-08-13 14:52:54 +00:00
2013-01-30 15:43:32 +00:00
2013-02-28 19:18:40 +00:00
2013-05-13 22:28:27 +00:00
2012-11-09 08:29:34 +00:00
2013-02-28 19:18:40 +00:00
2012-08-13 14:26:14 +00:00
2012-05-17 15:13:28 +00:00
2012-05-17 15:13:28 +00:00
2012-10-18 06:53:16 +00:00
2009-09-02 07:25:43 +00:00
2009-09-25 19:13:27 +00:00
2007-07-05 09:49:03 +00:00
2007-10-04 13:43:16 +00:00
2013-03-11 11:09:33 +00:00
2012-05-17 15:13:28 +00:00
2012-05-18 01:59:38 +00:00
2011-12-15 10:21:51 +00:00
2010-06-27 04:07:55 +00:00
2009-10-24 00:17:08 +00:00
2013-04-17 14:09:49 +00:00
2010-02-12 04:42:28 +00:00
2010-01-07 18:05:45 +00:00
2012-05-17 15:13:28 +00:00
2009-06-14 16:36:56 +00:00
2013-08-01 20:55:25 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2013-01-02 13:13:36 +00:00
2012-12-10 12:48:03 +00:00
2012-12-10 12:48:03 +00:00
2012-09-10 22:30:57 +00:00
2013-06-21 15:01:57 +00:00
2012-12-17 16:56:12 +00:00
2013-06-21 15:01:57 +00:00
2013-01-07 15:10:18 +00:00
2010-04-06 15:41:43 +00:00
2012-05-17 15:13:28 +00:00
2009-09-02 07:25:43 +00:00
2012-05-17 15:13:28 +00:00
2012-02-27 06:37:40 +00:00
2012-05-17 15:13:28 +00:00
2012-05-17 15:13:28 +00:00
2012-05-17 15:13:28 +00:00
2012-05-17 15:13:28 +00:00
2009-06-04 06:57:56 +00:00
2010-03-23 15:59:45 +00:00
2009-09-02 07:25:43 +00:00
2013-02-06 23:22:26 +00:00
2010-09-10 13:00:54 +00:00
2011-10-26 12:46:04 +00:00
2012-11-30 17:54:58 +00:00
2012-11-30 17:54:58 +00:00
2011-10-25 11:18:16 +00:00
2011-10-25 11:18:16 +00:00
2012-11-30 17:54:58 +00:00
2011-10-26 12:46:04 +00:00
2010-06-27 04:07:55 +00:00
2010-02-12 03:25:49 +00:00
2010-10-09 06:50:23 +00:00
2010-02-12 04:42:28 +00:00
2010-01-07 18:05:45 +00:00
2010-02-12 03:25:49 +00:00
2010-01-02 18:50:59 +00:00
2011-12-15 10:21:51 +00:00
2010-02-12 03:25:49 +00:00
2010-10-09 06:50:23 +00:00
2010-02-12 04:42:28 +00:00
2010-01-07 18:05:45 +00:00
2010-10-08 14:00:50 +00:00
2010-01-02 18:50:59 +00:00
2012-08-01 00:41:35 +00:00
2012-05-17 15:13:28 +00:00
2009-09-02 07:25:43 +00:00
2012-07-24 12:56:47 +00:00
2012-05-17 15:13:28 +00:00
2012-05-17 15:13:28 +00:00
2013-07-26 17:20:25 +00:00
2013-07-26 17:20:25 +00:00
2013-07-26 17:20:25 +00:00
2013-07-26 17:20:25 +00:00
2007-07-05 09:49:03 +00:00
2013-07-26 17:20:25 +00:00
2013-07-26 17:20:25 +00:00
2013-07-26 17:20:25 +00:00
2013-07-26 17:20:25 +00:00
2012-05-18 01:59:38 +00:00
2012-08-01 00:41:35 +00:00
2013-05-17 12:57:16 +00:00
2012-09-04 13:52:06 +00:00
2012-05-18 01:59:38 +00:00
2012-11-09 08:29:34 +00:00
2012-09-04 13:52:06 +00:00
2009-09-02 07:25:43 +00:00
2009-09-02 07:25:43 +00:00
2009-09-02 07:25:43 +00:00
2009-09-02 07:25:43 +00:00
2012-09-04 13:52:06 +00:00
2012-09-04 13:52:06 +00:00
2009-09-02 07:25:43 +00:00
2012-05-18 05:31:15 +00:00
2012-09-04 13:52:06 +00:00
2013-05-17 12:57:16 +00:00
2013-05-17 12:57:16 +00:00
2010-06-27 04:07:55 +00:00
2010-02-12 03:25:49 +00:00
2010-10-09 06:50:23 +00:00
2010-02-12 04:42:28 +00:00
2010-01-07 18:05:45 +00:00
2010-02-12 03:25:49 +00:00
2010-01-02 18:50:59 +00:00
2010-06-27 04:07:55 +00:00
2010-02-12 03:25:49 +00:00
2010-10-09 06:50:23 +00:00
2010-02-12 04:42:28 +00:00
2010-01-07 18:05:45 +00:00
2010-02-12 03:25:49 +00:00
2010-01-02 18:50:59 +00:00
2010-06-27 04:07:55 +00:00
2013-03-08 17:25:12 +00:00
2010-10-09 06:50:23 +00:00
2010-02-12 04:42:28 +00:00
2010-01-07 18:05:45 +00:00
2010-02-12 03:25:49 +00:00
2010-01-02 18:50:59 +00:00
2010-02-13 04:38:57 +00:00
2010-06-27 04:07:55 +00:00
2010-02-12 03:25:49 +00:00
2010-10-09 06:50:23 +00:00
2010-02-12 04:42:28 +00:00
2010-07-03 04:09:56 +00:00
2010-02-12 03:25:49 +00:00
2010-01-02 18:50:59 +00:00
2010-06-27 04:07:55 +00:00
2010-02-12 04:42:28 +00:00
2010-10-09 06:50:23 +00:00
2010-02-12 04:42:28 +00:00
2010-01-07 18:05:45 +00:00
2010-02-12 03:25:49 +00:00
2010-01-02 18:50:59 +00:00
2010-02-12 03:25:49 +00:00
2012-05-18 01:59:38 +00:00
2012-05-15 12:55:51 +00:00
2012-07-24 12:56:47 +00:00
2012-01-16 23:19:20 +00:00
2009-09-05 07:56:26 +00:00
2012-05-17 15:13:28 +00:00
2009-09-02 07:25:43 +00:00
2012-05-17 15:13:28 +00:00
2009-09-02 07:25:43 +00:00
2012-12-17 16:56:12 +00:00
2013-07-14 14:25:57 +00:00
2013-07-14 14:25:57 +00:00
2012-12-17 16:56:12 +00:00
2009-12-11 13:42:17 +00:00
2009-09-02 07:25:43 +00:00
2010-06-27 04:07:55 +00:00
2010-02-12 03:25:49 +00:00
2010-10-09 06:50:23 +00:00
2010-06-28 14:41:59 +00:00
2010-01-07 18:05:45 +00:00
2010-10-09 06:50:23 +00:00
2010-01-02 18:50:59 +00:00
2013-02-15 14:54:28 +00:00
2012-11-29 21:09:01 +00:00
2009-10-07 15:40:17 +00:00
2012-11-29 21:09:01 +00:00
2012-11-21 17:54:11 +00:00
2013-08-01 20:55:25 +00:00
2013-08-01 20:55:25 +00:00
2013-08-01 20:55:25 +00:00
2013-07-17 08:06:11 +00:00
2013-08-01 20:55:25 +00:00
2012-05-18 01:59:38 +00:00
2009-09-02 07:25:43 +00:00
2012-09-28 03:53:39 +00:00
2012-09-28 03:53:39 +00:00
2013-06-21 15:01:57 +00:00
2013-06-21 15:01:57 +00:00
2013-05-02 21:06:15 +00:00
2010-06-27 04:07:55 +00:00
2010-02-12 03:25:49 +00:00
2010-10-09 06:50:23 +00:00
2012-02-27 06:57:57 +00:00
2010-01-07 18:05:45 +00:00
2010-02-12 03:25:49 +00:00
2010-01-02 18:50:59 +00:00
2013-02-06 23:22:26 +00:00
2013-06-10 01:04:42 +00:00
2009-12-11 13:42:17 +00:00
2009-10-05 13:14:55 +00:00
2010-06-27 04:07:55 +00:00
2010-02-12 03:25:49 +00:00
2010-10-09 06:50:23 +00:00
2010-02-12 04:42:28 +00:00
2010-01-07 18:05:45 +00:00
2010-02-12 03:25:49 +00:00
2010-01-02 18:50:59 +00:00
2009-09-02 07:25:43 +00:00
2012-05-18 01:59:38 +00:00
2012-05-17 15:13:28 +00:00
2012-08-01 00:41:35 +00:00
2009-09-02 07:25:43 +00:00
2012-05-17 15:13:28 +00:00
2009-09-02 07:25:43 +00:00
2013-07-30 02:26:09 +00:00
2013-07-04 01:42:08 +00:00
2013-02-27 03:00:44 +00:00
2013-02-27 03:00:44 +00:00
2013-04-10 19:16:45 +00:00
2013-06-26 10:31:38 +00:00
2013-06-26 10:31:38 +00:00
2012-05-18 01:59:38 +00:00
2012-05-17 15:13:28 +00:00
2012-11-29 23:42:03 +00:00
2013-07-05 09:45:44 +00:00
2013-07-05 09:45:44 +00:00
2009-06-22 00:01:57 +00:00
2009-06-22 00:01:57 +00:00
2009-09-02 07:25:43 +00:00
2012-05-17 15:13:28 +00:00
2009-09-02 07:25:43 +00:00
2009-09-02 07:25:43 +00:00
2012-08-01 00:41:35 +00:00
2007-07-05 09:49:03 +00:00
2013-04-06 22:22:03 +00:00
2013-04-06 22:22:03 +00:00
2012-05-17 15:13:28 +00:00
2007-07-05 09:49:03 +00:00
2012-05-17 15:13:28 +00:00
2012-05-18 01:59:38 +00:00
2013-03-27 11:43:37 +00:00
2012-05-17 15:13:28 +00:00
2012-10-18 15:28:06 +00:00
2009-09-02 07:25:43 +00:00
2012-05-17 15:13:28 +00:00
2012-05-17 15:13:28 +00:00
2012-05-17 15:13:28 +00:00
2012-05-18 01:59:38 +00:00
2012-05-17 15:13:28 +00:00
2012-05-18 01:59:38 +00:00
2013-04-03 14:42:10 +00:00
2013-04-03 14:42:10 +00:00
2012-05-17 15:13:28 +00:00
2012-05-17 15:13:28 +00:00
2009-09-02 07:25:43 +00:00
2010-06-27 04:07:55 +00:00
2010-02-12 03:25:49 +00:00
2010-10-09 06:50:23 +00:00
2010-02-12 04:42:28 +00:00
2010-01-07 18:05:45 +00:00
2010-02-12 03:25:49 +00:00
2010-01-02 18:50:59 +00:00
2012-07-05 19:37:52 +00:00
2012-07-05 19:37:52 +00:00
2010-06-27 04:07:55 +00:00
2010-02-12 03:25:49 +00:00
2010-10-09 06:50:23 +00:00
2010-02-12 04:42:28 +00:00
2010-01-07 18:05:45 +00:00
2010-02-12 03:25:49 +00:00
2010-01-02 18:50:59 +00:00
2012-05-17 15:13:28 +00:00
2009-09-02 07:25:43 +00:00
2012-10-26 08:14:07 +00:00
2012-10-26 08:14:07 +00:00
2009-09-02 07:25:43 +00:00