summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwalt <walt>2012-02-25 22:24:18 +0000
committerwalt <walt>2012-02-25 22:24:18 +0000
commit29c470fbb6ec3332f65abfccd1afa44bcfa42df4 (patch)
treeb0ac489045df09cb00aeac54ed6520ae5edac4ac
parent00eb64ce09c6289963729d6c658904a390061ab3 (diff)
downloadbinutils-redhat-29c470fbb6ec3332f65abfccd1afa44bcfa42df4.tar.gz
Improve TLS support on TILE-Gx/TILEPro:
- Add support for TLS LE references. - Support linker optimization of TLS references. - Delete relocations of GOT/tp relative offsets beyond 32-bits. This brings binutils in line with the support expected in gcc 4.7, for TILE-Gx/TILEPro. bfd/ * reloc.c: Add BFD_RELOC_TILEPRO_TLS_GD_CALL, BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD, BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD, BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD, BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD, BFD_RELOC_TILEPRO_TLS_IE_LOAD, BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE, BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE, BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO, BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO, BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI, BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI, BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA, BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA, BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE, BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE, BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE, BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE, BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE, BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE, BFD_RELOC_TILEGX_TLS_GD_CALL, BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD, BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD, BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD, BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD, BFD_RELOC_TILEGX_TLS_IE_LOAD, BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD, BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD, BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD, BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD. Delete BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT, BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT, BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT, BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT, BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT, BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT, BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT, BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT, BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD, BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD, BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD, BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD, BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD, BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD, BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD, BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD, BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE, BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE, BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE, BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE, BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE, BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE, BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE, BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE. * elf32-tilepro.c (tilepro_elf_howto_table): Update tilepro relocations. (tilepro_reloc_map): Ditto. (tilepro_info_to_howto_rela): Ditto. (reloc_to_create_func): Ditto. (tilepro_tls_translate_to_le): New. (tilepro_tls_translate_to_ie): New. (tilepro_elf_tls_transition): New. (tilepro_elf_check_relocs): Handle new tls relocations. (tilepro_elf_gc_sweep_hook): Ditto. (allocate_dynrelocs): Ditto. (tilepro_elf_relocate_section): Ditto. (tilepro_replace_insn): New. (insn_mask_X1): New. (insn_mask_X0_no_dest_no_srca): New (insn_mask_X1_no_dest_no_srca): New (insn_mask_Y0_no_dest_no_srca): New (insn_mask_Y1_no_dest_no_srca): New (srca_mask_X0): New (srca_mask_X1): New (insn_tls_le_move_X1): New (insn_tls_le_move_zero_X0X1): New (insn_tls_ie_lw_X1): New (insn_tls_ie_add_X0X1): New (insn_tls_ie_add_Y0Y1): New (insn_tls_gd_add_X0X1): New (insn_tls_gd_add_Y0Y1): New * elfxx-tilegx.c (tilegx_elf_howto_table): Update tilegx relocations. (tilegx_reloc_map): Ditto. (tilegx_info_to_howto_rela): Ditto. (reloc_to_create_func): Ditto. (tilegx_elf_link_hash_table): New field disable_le_transition. (tilegx_tls_translate_to_le): New. (tilegx_tls_translate_to_ie): New. (tilegx_elf_tls_transition): New. (tilegx_elf_check_relocs): Handle new tls relocations. (tilegx_elf_gc_sweep_hook): Ditto. (allocate_dynrelocs): Ditto. (tilegx_elf_relocate_section): Ditto. (tilegx_copy_bits): New. (tilegx_replace_insn): New. (insn_mask_X1): New. (insn_mask_X0_no_dest_no_srca): New. (insn_mask_X1_no_dest_no_srca): New. (insn_mask_Y0_no_dest_no_srca): New. (insn_mask_Y1_no_dest_no_srca): New. (insn_mask_X0_no_operand): New. (insn_mask_X1_no_operand): New. (insn_mask_Y0_no_operand): New. (insn_mask_Y1_no_operand): New. (insn_tls_ie_ld_X1): New. (insn_tls_ie_ld4s_X1): New. (insn_tls_ie_add_X0X1): New. (insn_tls_ie_add_Y0Y1): New. (insn_tls_ie_addx_X0X1): New. (insn_tls_ie_addx_Y0Y1): New. (insn_tls_gd_add_X0X1): New. (insn_tls_gd_add_Y0Y1): New. (insn_move_X0X1): New. (insn_move_Y0Y1): New. (insn_add_X0X1): New. (insn_add_Y0Y1): New. (insn_addx_X0X1): New. (insn_addx_Y0Y1): New. * libbfd.h: Regenerate. * bfd-in2.h: Regenerate. gas/ * tc-tilepro.c (O_tls_le): Define operator. (O_tls_le_lo16): Ditto. (O_tls_le_hi16): Ditto. (O_tls_le_ha16): Ditto. (O_tls_gd_call): Ditto. (O_tls_gd_add): Ditto. (O_tls_ie_load): Ditto. (md_begin): Delete old operators; handle new operators. (emit_tilepro_instruction): Ditto. (md_apply_fix): Ditto. * tc-tilegx.c (O_hw1_got): Delete operator. (O_hw2_got): Ditto. (O_hw3_got): Ditto. (O_hw2_last_got): Ditto. (O_hw1_tls_gd): Ditto. (O_hw2_tls_gd): Ditto. (O_hw3_tls_gd): Ditto. (O_hw2_last_tls_gd): Ditto. (O_hw1_tls_ie): Ditto. (O_hw2_tls_ie): Ditto. (O_hw3_tls_ie): Ditto. (O_hw2_last_tls_ie): Ditto. (O_hw0_tls_le): Define operator. (O_hw0_last_tls_le): Ditto. (O_hw1_last_tls_le): Ditto. (O_tls_gd_call): Ditto. (O_tls_gd_add): Ditto. (O_tls_ie_load): Ditto. (O_tls_add): Ditto. (md_begin): Delete old operators; handle new operators. (emit_tilegx_instruction): Ditto. (md_apply_fix): Ditto. * doc/c-tilegx.texi: Delete old operators; document new operators. * doc/c-tilepro.texi: Ditto. include/elf/ * tilegx.h (R_TILEGX_IMM16_X0_HW1_GOT): Delete. (R_TILEGX_IMM16_X1_HW1_GOT): Ditto. (R_TILEGX_IMM16_X0_HW2_GOT): Ditto. (R_TILEGX_IMM16_X1_HW2_GOT): Ditto. (R_TILEGX_IMM16_X0_HW3_GOT): Ditto. (R_TILEGX_IMM16_X1_HW3_GOT): Ditto. (R_TILEGX_IMM16_X0_HW2_LAST_GOT): Ditto. (R_TILEGX_IMM16_X1_HW2_LAST_GOT): Ditto. (R_TILEGX_IMM16_X0_HW1_TLS_GD): Ditto. (R_TILEGX_IMM16_X1_HW1_TLS_GD): Ditto. (R_TILEGX_IMM16_X0_HW2_TLS_GD): Ditto. (R_TILEGX_IMM16_X1_HW2_TLS_GD): Ditto. (R_TILEGX_IMM16_X0_HW3_TLS_GD): Ditto. (R_TILEGX_IMM16_X1_HW3_TLS_GD): Ditto. (R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD): Ditto. (R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD): Ditto. (R_TILEGX_IMM16_X0_HW1_TLS_IE): Ditto. (R_TILEGX_IMM16_X1_HW1_TLS_IE): Ditto. (R_TILEGX_IMM16_X0_HW2_TLS_IE): Ditto. (R_TILEGX_IMM16_X1_HW2_TLS_IE): Ditto. (R_TILEGX_IMM16_X0_HW3_TLS_IE): Ditto. (R_TILEGX_IMM16_X1_HW3_TLS_IE): Ditto. (R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE): Ditto. (R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE): Ditto. (R_TILEGX_IMM16_X0_HW0_TLS_LE): New relocation. (R_TILEGX_IMM16_X1_HW0_TLS_LE): Ditto. (R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE): Ditto. (R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE): Ditto. (R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE): Ditto. (R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE): Ditto. (R_TILEGX_TLS_GD_CALL): Ditto. (R_TILEGX_IMM8_X0_TLS_GD_ADD): Ditto. (R_TILEGX_IMM8_X1_TLS_GD_ADD): Ditto. (R_TILEGX_IMM8_Y0_TLS_GD_ADD): Ditto. (R_TILEGX_IMM8_Y1_TLS_GD_ADD): Ditto. (R_TILEGX_TLS_IE_LOAD): Ditto. (R_TILEGX_IMM8_X0_TLS_ADD): Ditto. (R_TILEGX_IMM8_X1_TLS_ADD): Ditto. (R_TILEGX_IMM8_Y0_TLS_ADD): Ditto. (R_TILEGX_IMM8_Y1_TLS_ADD): Ditto. * tilepro.h (R_TILEPRO_TLS_GD_CALL): New relocation. (R_TILEPRO_IMM8_X0_TLS_GD_ADD): Ditto. (R_TILEPRO_IMM8_X1_TLS_GD_ADD): Ditto. (R_TILEPRO_IMM8_Y0_TLS_GD_ADD): Ditto. (R_TILEPRO_IMM8_Y1_TLS_GD_ADD): Ditto. (R_TILEPRO_TLS_IE_LOAD): Ditto. (R_TILEPRO_IMM16_X0_TLS_LE): Ditto. (R_TILEPRO_IMM16_X1_TLS_LE): Ditto. (R_TILEPRO_IMM16_X0_TLS_LE_LO): Ditto. (R_TILEPRO_IMM16_X1_TLS_LE_LO): Ditto. (R_TILEPRO_IMM16_X0_TLS_LE_HI): Ditto. (R_TILEPRO_IMM16_X1_TLS_LE_HI): Ditto. (R_TILEPRO_IMM16_X0_TLS_LE_HA): Ditto. (R_TILEPRO_IMM16_X1_TLS_LE_HA): Ditto. include/opcode/ * tilegx.h (tilegx_mnemonic): Add TILEGX_OPC_LD4S_TLS, TILEGX_OPC_LD_TLS. * tilepro.h (tilepro_mnemonic): Add TILEPRO_OPC_LW_TLS, TILEPRO_OPC_LW_TLS_SN. opcodes/ * tilegx-opc.c: Handle TILEGX_OPC_LD4S_TLS and TILEGX_OPC_LD_TLS. * tilepro-opc.c: Handle TILEPRO_OPC_LW_TLS and TILEPRO_OPC_LW_TLS_SN.
-rw-r--r--bfd/ChangeLog119
-rw-r--r--bfd/bfd-in2.h54
-rw-r--r--bfd/elf32-tilepro.c550
-rw-r--r--bfd/elfxx-tilegx.c843
-rw-r--r--bfd/libbfd.h54
-rw-r--r--bfd/reloc.c96
-rw-r--r--gas/ChangeLog37
-rw-r--r--gas/config/tc-tilegx.c231
-rw-r--r--gas/config/tc-tilepro.c121
-rw-r--r--gas/doc/c-tilegx.texi101
-rw-r--r--gas/doc/c-tilepro.texi35
-rw-r--r--include/elf/ChangeLog57
-rw-r--r--include/elf/tilegx.h48
-rw-r--r--include/elf/tilepro.h18
-rw-r--r--include/opcode/ChangeLog7
-rw-r--r--include/opcode/tilegx.h2
-rw-r--r--include/opcode/tilepro.h2
-rw-r--r--opcodes/ChangeLog6
-rw-r--r--opcodes/tilegx-opc.c930
-rw-r--r--opcodes/tilepro-opc.c1091
20 files changed, 2868 insertions, 1534 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2af9699550..982c9a2743 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,4 +1,123 @@
2012-02-25 Walter Lee <walt@tilera.com>
+ * reloc.c: Add BFD_RELOC_TILEPRO_TLS_GD_CALL,
+ BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD,
+ BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD,
+ BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD,
+ BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD,
+ BFD_RELOC_TILEPRO_TLS_IE_LOAD, BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE,
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE,
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO,
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO,
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI,
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI,
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA,
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA,
+ BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE,
+ BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE,
+ BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE,
+ BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE,
+ BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE,
+ BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE,
+ BFD_RELOC_TILEGX_TLS_GD_CALL, BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD,
+ BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD,
+ BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD,
+ BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD, BFD_RELOC_TILEGX_TLS_IE_LOAD,
+ BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD,
+ BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD,
+ BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD, BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD.
+ Delete BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT,
+ BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT,
+ BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT,
+ BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT,
+ BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT,
+ BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT,
+ BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT,
+ BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT,
+ BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD,
+ BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD,
+ BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD,
+ BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD,
+ BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD,
+ BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD,
+ BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD,
+ BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD,
+ BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE,
+ BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE,
+ BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE,
+ BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE,
+ BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE,
+ BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE,
+ BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE,
+ BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE.
+ * elf32-tilepro.c (tilepro_elf_howto_table): Update tilepro
+ relocations.
+ (tilepro_reloc_map): Ditto.
+ (tilepro_info_to_howto_rela): Ditto.
+ (reloc_to_create_func): Ditto.
+ (tilepro_tls_translate_to_le): New.
+ (tilepro_tls_translate_to_ie): New.
+ (tilepro_elf_tls_transition): New.
+ (tilepro_elf_check_relocs): Handle new tls relocations.
+ (tilepro_elf_gc_sweep_hook): Ditto.
+ (allocate_dynrelocs): Ditto.
+ (tilepro_elf_relocate_section): Ditto.
+ (tilepro_replace_insn): New.
+ (insn_mask_X1): New.
+ (insn_mask_X0_no_dest_no_srca): New
+ (insn_mask_X1_no_dest_no_srca): New
+ (insn_mask_Y0_no_dest_no_srca): New
+ (insn_mask_Y1_no_dest_no_srca): New
+ (srca_mask_X0): New
+ (srca_mask_X1): New
+ (insn_tls_le_move_X1): New
+ (insn_tls_le_move_zero_X0X1): New
+ (insn_tls_ie_lw_X1): New
+ (insn_tls_ie_add_X0X1): New
+ (insn_tls_ie_add_Y0Y1): New
+ (insn_tls_gd_add_X0X1): New
+ (insn_tls_gd_add_Y0Y1): New
+ * elfxx-tilegx.c (tilegx_elf_howto_table): Update tilegx
+ relocations.
+ (tilegx_reloc_map): Ditto.
+ (tilegx_info_to_howto_rela): Ditto.
+ (reloc_to_create_func): Ditto.
+ (tilegx_elf_link_hash_table): New field disable_le_transition.
+ (tilegx_tls_translate_to_le): New.
+ (tilegx_tls_translate_to_ie): New.
+ (tilegx_elf_tls_transition): New.
+ (tilegx_elf_check_relocs): Handle new tls relocations.
+ (tilegx_elf_gc_sweep_hook): Ditto.
+ (allocate_dynrelocs): Ditto.
+ (tilegx_elf_relocate_section): Ditto.
+ (tilegx_copy_bits): New.
+ (tilegx_replace_insn): New.
+ (insn_mask_X1): New.
+ (insn_mask_X0_no_dest_no_srca): New.
+ (insn_mask_X1_no_dest_no_srca): New.
+ (insn_mask_Y0_no_dest_no_srca): New.
+ (insn_mask_Y1_no_dest_no_srca): New.
+ (insn_mask_X0_no_operand): New.
+ (insn_mask_X1_no_operand): New.
+ (insn_mask_Y0_no_operand): New.
+ (insn_mask_Y1_no_operand): New.
+ (insn_tls_ie_ld_X1): New.
+ (insn_tls_ie_ld4s_X1): New.
+ (insn_tls_ie_add_X0X1): New.
+ (insn_tls_ie_add_Y0Y1): New.
+ (insn_tls_ie_addx_X0X1): New.
+ (insn_tls_ie_addx_Y0Y1): New.
+ (insn_tls_gd_add_X0X1): New.
+ (insn_tls_gd_add_Y0Y1): New.
+ (insn_move_X0X1): New.
+ (insn_move_Y0Y1): New.
+ (insn_add_X0X1): New.
+ (insn_add_Y0Y1): New.
+ (insn_addx_X0X1): New.
+ (insn_addx_Y0Y1): New.
+ * libbfd.h: Regenerate.
+ * bfd-in2.h: Regenerate.
+
+2012-02-25 Walter Lee <walt@tilera.com>
* config.bfd (tilegx-*-*): rename little endian vector; add big
endian vector.
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 4a92e47ef9..9c77fed8c5 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -4959,6 +4959,12 @@ the dynamic object into the runtime process image. */
BFD_RELOC_TILEPRO_SHAMT_X1,
BFD_RELOC_TILEPRO_SHAMT_Y0,
BFD_RELOC_TILEPRO_SHAMT_Y1,
+ BFD_RELOC_TILEPRO_TLS_GD_CALL,
+ BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD,
+ BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD,
+ BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD,
+ BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD,
+ BFD_RELOC_TILEPRO_TLS_IE_LOAD,
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD,
BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD,
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO,
@@ -4978,6 +4984,14 @@ the dynamic object into the runtime process image. */
BFD_RELOC_TILEPRO_TLS_DTPMOD32,
BFD_RELOC_TILEPRO_TLS_DTPOFF32,
BFD_RELOC_TILEPRO_TLS_TPOFF32,
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE,
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE,
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO,
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO,
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI,
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI,
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA,
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA,
/* Tilera TILE-Gx Relocations. */
BFD_RELOC_TILEGX_HW0,
@@ -5037,52 +5051,44 @@ the dynamic object into the runtime process image. */
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL,
BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT,
BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT,
- BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT,
- BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT,
- BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT,
- BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT,
- BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT,
- BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT,
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT,
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT,
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT,
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT,
- BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT,
- BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT,
BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD,
- BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD,
- BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD,
- BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD,
- BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD,
- BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD,
- BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD,
+ BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE,
+ BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE,
+ BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE,
+ BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE,
+ BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE,
+ BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE,
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD,
- BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD,
- BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE,
- BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE,
- BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE,
- BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE,
- BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE,
- BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE,
- BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE,
- BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE,
- BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE,
BFD_RELOC_TILEGX_TLS_DTPMOD64,
BFD_RELOC_TILEGX_TLS_DTPOFF64,
BFD_RELOC_TILEGX_TLS_TPOFF64,
BFD_RELOC_TILEGX_TLS_DTPMOD32,
BFD_RELOC_TILEGX_TLS_DTPOFF32,
BFD_RELOC_TILEGX_TLS_TPOFF32,
+ BFD_RELOC_TILEGX_TLS_GD_CALL,
+ BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD,
+ BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD,
+ BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD,
+ BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD,
+ BFD_RELOC_TILEGX_TLS_IE_LOAD,
+ BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD,
+ BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD,
+ BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD,
+ BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD,
/* Adapteva EPIPHANY - 8 bit signed pc-relative displacement */
BFD_RELOC_EPIPHANY_SIMM8,
diff --git a/bfd/elf32-tilepro.c b/bfd/elf32-tilepro.c
index 7b08aff04e..48a99aa76e 100644
--- a/bfd/elf32-tilepro.c
+++ b/bfd/elf32-tilepro.c
@@ -380,12 +380,26 @@ static reloc_howto_type tilepro_elf_howto_table [] =
EMPTY_HOWTO (57),
EMPTY_HOWTO (58),
EMPTY_HOWTO (59),
- EMPTY_HOWTO (60),
- EMPTY_HOWTO (61),
- EMPTY_HOWTO (62),
- EMPTY_HOWTO (63),
- EMPTY_HOWTO (64),
- EMPTY_HOWTO (65),
+
+ HOWTO (R_TILEPRO_TLS_GD_CALL, /* type */
+ TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 29, /* bitsize */
+ TRUE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_signed,/* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_TILEPRO_TLS_GD_CALL", /* name */
+ FALSE, /* partial_inplace */
+ 0, /* src_mask */
+ -1, /* dst_mask */
+ TRUE), /* pcrel_offset */
+
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X0_TLS_GD_ADD, 0, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X1_TLS_GD_ADD, 0, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y0_TLS_GD_ADD, 0, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y1_TLS_GD_ADD, 0, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_TLS_IE_LOAD, 0, 8),
/* Offsets into the GOT of TLS Descriptors. */
@@ -454,17 +468,12 @@ static reloc_howto_type tilepro_elf_howto_table [] =
-1, /* dst_mask */
TRUE), /* pcrel_offset */
-#define TILEPRO_IMM16_HOWTO_TLS_IE(name, rshift) \
- HOWTO (name, rshift, 1, 16, FALSE, 0, \
- complain_overflow_dont, bfd_elf_generic_reloc, \
- #name, FALSE, 0, 0xffff, TRUE)
-
- TILEPRO_IMM16_HOWTO_TLS_IE (R_TILEPRO_IMM16_X0_TLS_IE_LO, 0),
- TILEPRO_IMM16_HOWTO_TLS_IE (R_TILEPRO_IMM16_X1_TLS_IE_LO, 0),
- TILEPRO_IMM16_HOWTO_TLS_IE (R_TILEPRO_IMM16_X0_TLS_IE_HI, 16),
- TILEPRO_IMM16_HOWTO_TLS_IE (R_TILEPRO_IMM16_X1_TLS_IE_HI, 16),
- TILEPRO_IMM16_HOWTO_TLS_IE (R_TILEPRO_IMM16_X0_TLS_IE_HA, 16),
- TILEPRO_IMM16_HOWTO_TLS_IE (R_TILEPRO_IMM16_X1_TLS_IE_HA, 16),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X0_TLS_IE_LO, 0),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X1_TLS_IE_LO, 0),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X0_TLS_IE_HI, 16),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X1_TLS_IE_HI, 16),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X0_TLS_IE_HA, 16),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X1_TLS_IE_HA, 16),
/* These are common with the Solaris TLS implementation. */
HOWTO(R_TILEPRO_TLS_DTPMOD32, 0, 0, 0, FALSE, 0, complain_overflow_dont,
@@ -475,8 +484,42 @@ static reloc_howto_type tilepro_elf_howto_table [] =
FALSE, 0, 0xFFFFFFFF, TRUE),
HOWTO(R_TILEPRO_TLS_TPOFF32, 0, 0, 0, FALSE, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_TILEPRO_TLS_TPOFF32",
- FALSE, 0, 0, TRUE)
+ FALSE, 0, 0, TRUE),
+ HOWTO (R_TILEPRO_IMM16_X0_TLS_LE,/* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_signed, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_TILEPRO_IMM16_X0_TLS_LE",/* name */
+ FALSE, /* partial_inplace */
+ 0, /* src_mask */
+ -1, /* dst_mask */
+ TRUE), /* pcrel_offset */
+
+ HOWTO (R_TILEPRO_IMM16_X1_TLS_LE,/* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_signed, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_TILEPRO_IMM16_X1_TLS_LE",/* name */
+ FALSE, /* partial_inplace */
+ 0, /* src_mask */
+ -1, /* dst_mask */
+ TRUE), /* pcrel_offset */
+
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X0_TLS_LE_LO, 0),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X1_TLS_LE_LO, 0),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X0_TLS_LE_HI, 16),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X1_TLS_LE_HI, 16),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X0_TLS_LE_HA, 16),
+ TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X1_TLS_LE_HA, 16),
};
static reloc_howto_type tilepro_elf_howto_table2 [] =
@@ -590,6 +633,13 @@ static const reloc_map tilepro_reloc_map [] =
TH_REMAP (BFD_RELOC_TILEPRO_SHAMT_Y0, R_TILEPRO_SHAMT_Y0)
TH_REMAP (BFD_RELOC_TILEPRO_SHAMT_Y1, R_TILEPRO_SHAMT_Y1)
+ TH_REMAP (BFD_RELOC_TILEPRO_TLS_GD_CALL, R_TILEPRO_TLS_GD_CALL)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD, R_TILEPRO_IMM8_X0_TLS_GD_ADD)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD, R_TILEPRO_IMM8_X1_TLS_GD_ADD)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD, R_TILEPRO_IMM8_Y0_TLS_GD_ADD)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD, R_TILEPRO_IMM8_Y1_TLS_GD_ADD)
+ TH_REMAP (BFD_RELOC_TILEPRO_TLS_IE_LOAD, R_TILEPRO_TLS_IE_LOAD)
+
TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD, R_TILEPRO_IMM16_X0_TLS_GD)
TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD, R_TILEPRO_IMM16_X1_TLS_GD)
TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO, R_TILEPRO_IMM16_X0_TLS_GD_LO)
@@ -612,6 +662,15 @@ static const reloc_map tilepro_reloc_map [] =
TH_REMAP (BFD_RELOC_TILEPRO_TLS_DTPOFF32, R_TILEPRO_TLS_DTPOFF32)
TH_REMAP (BFD_RELOC_TILEPRO_TLS_TPOFF32, R_TILEPRO_TLS_TPOFF32)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE, R_TILEPRO_IMM16_X0_TLS_LE)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE, R_TILEPRO_IMM16_X1_TLS_LE)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO, R_TILEPRO_IMM16_X0_TLS_LE_LO)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO, R_TILEPRO_IMM16_X1_TLS_LE_LO)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI, R_TILEPRO_IMM16_X0_TLS_LE_HI)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI, R_TILEPRO_IMM16_X1_TLS_LE_HI)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA, R_TILEPRO_IMM16_X0_TLS_LE_HA)
+ TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA, R_TILEPRO_IMM16_X1_TLS_LE_HA)
+
#undef TH_REMAP
{ BFD_RELOC_VTABLE_INHERIT, R_TILEPRO_GNU_VTINHERIT, tilepro_elf_howto_table2 },
@@ -745,7 +804,7 @@ tilepro_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED,
{
unsigned int r_type = ELF32_R_TYPE (dst->r_info);
- if (r_type <= (unsigned int) R_TILEPRO_TLS_TPOFF32)
+ if (r_type <= (unsigned int) R_TILEPRO_IMM16_X1_TLS_LE_HA)
cache_ptr->howto = &tilepro_elf_howto_table [r_type];
else if (r_type - R_TILEPRO_GNU_VTINHERIT
<= (unsigned int) R_TILEPRO_GNU_VTENTRY)
@@ -845,7 +904,20 @@ static const tilepro_create_func reloc_to_create_func[] =
create_Imm16_X0,
create_Imm16_X1,
create_Imm16_X0,
- create_Imm16_X1
+ create_Imm16_X1,
+
+ NULL,
+ NULL,
+ NULL,
+
+ create_Imm16_X0,
+ create_Imm16_X1,
+ create_Imm16_X0,
+ create_Imm16_X1,
+ create_Imm16_X0,
+ create_Imm16_X1,
+ create_Imm16_X0,
+ create_Imm16_X1,
};
#define NELEMS(a) ((int) (sizeof (a) / sizeof ((a)[0])))
@@ -1288,6 +1360,99 @@ tilepro_elf_copy_indirect_symbol (struct bfd_link_info *info,
_bfd_elf_link_hash_copy_indirect (info, dir, ind);
}
+static int
+tilepro_tls_translate_to_le (int r_type)
+{
+ switch (r_type)
+ {
+ case R_TILEPRO_IMM16_X0_TLS_GD:
+ case R_TILEPRO_IMM16_X0_TLS_IE:
+ return R_TILEPRO_IMM16_X0_TLS_LE;
+
+ case R_TILEPRO_IMM16_X1_TLS_GD:
+ case R_TILEPRO_IMM16_X1_TLS_IE:
+ return R_TILEPRO_IMM16_X1_TLS_LE;
+
+ case R_TILEPRO_IMM16_X0_TLS_GD_LO:
+ case R_TILEPRO_IMM16_X0_TLS_IE_LO:
+ return R_TILEPRO_IMM16_X0_TLS_LE_LO;
+
+ case R_TILEPRO_IMM16_X1_TLS_GD_LO:
+ case R_TILEPRO_IMM16_X1_TLS_IE_LO:
+ return R_TILEPRO_IMM16_X1_TLS_LE_LO;
+
+ case R_TILEPRO_IMM16_X0_TLS_GD_HI:
+ case R_TILEPRO_IMM16_X0_TLS_IE_HI:
+ return R_TILEPRO_IMM16_X0_TLS_LE_HI;
+
+ case R_TILEPRO_IMM16_X1_TLS_GD_HI:
+ case R_TILEPRO_IMM16_X1_TLS_IE_HI:
+ return R_TILEPRO_IMM16_X1_TLS_LE_HI;
+
+ case R_TILEPRO_IMM16_X0_TLS_GD_HA:
+ case R_TILEPRO_IMM16_X0_TLS_IE_HA:
+ return R_TILEPRO_IMM16_X0_TLS_LE_HA;
+
+ case R_TILEPRO_IMM16_X1_TLS_GD_HA:
+ case R_TILEPRO_IMM16_X1_TLS_IE_HA:
+ return R_TILEPRO_IMM16_X1_TLS_LE_HA;
+ }
+ return r_type;
+}
+
+static int
+tilepro_tls_translate_to_ie (int r_type)
+{
+ switch (r_type)
+ {
+ case R_TILEPRO_IMM16_X0_TLS_GD:
+ case R_TILEPRO_IMM16_X0_TLS_IE:
+ return R_TILEPRO_IMM16_X0_TLS_IE;
+
+ case R_TILEPRO_IMM16_X1_TLS_GD:
+ case R_TILEPRO_IMM16_X1_TLS_IE:
+ return R_TILEPRO_IMM16_X1_TLS_IE;
+
+ case R_TILEPRO_IMM16_X0_TLS_GD_LO:
+ case R_TILEPRO_IMM16_X0_TLS_IE_LO:
+ return R_TILEPRO_IMM16_X0_TLS_IE_LO;
+
+ case R_TILEPRO_IMM16_X1_TLS_GD_LO:
+ case R_TILEPRO_IMM16_X1_TLS_IE_LO:
+ return R_TILEPRO_IMM16_X1_TLS_IE_LO;
+
+ case R_TILEPRO_IMM16_X0_TLS_GD_HI:
+ case R_TILEPRO_IMM16_X0_TLS_IE_HI:
+ return R_TILEPRO_IMM16_X0_TLS_IE_HI;
+
+ case R_TILEPRO_IMM16_X1_TLS_GD_HI:
+ case R_TILEPRO_IMM16_X1_TLS_IE_HI:
+ return R_TILEPRO_IMM16_X1_TLS_IE_HI;
+
+ case R_TILEPRO_IMM16_X0_TLS_GD_HA:
+ case R_TILEPRO_IMM16_X0_TLS_IE_HA:
+ return R_TILEPRO_IMM16_X0_TLS_IE_HA;
+
+ case R_TILEPRO_IMM16_X1_TLS_GD_HA:
+ case R_TILEPRO_IMM16_X1_TLS_IE_HA:
+ return R_TILEPRO_IMM16_X1_TLS_IE_HA;
+ }
+ return r_type;
+}
+
+static int
+tilepro_elf_tls_transition (struct bfd_link_info *info, int r_type,
+ int is_local)
+{
+ if (info->shared)
+ return r_type;
+
+ if (is_local)
+ return tilepro_tls_translate_to_le (r_type);
+ else
+ return tilepro_tls_translate_to_ie (r_type);
+}
+
/* Look through the relocs for a section during the first phase, and
allocate space in the global offset table or procedure linkage
table. */
@@ -1348,8 +1513,21 @@ tilepro_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
h = (struct elf_link_hash_entry *) h->root.u.i.link;
}
+ r_type = tilepro_elf_tls_transition (info, r_type, h == NULL);
switch (r_type)
{
+ case R_TILEPRO_IMM16_X0_TLS_LE:
+ case R_TILEPRO_IMM16_X1_TLS_LE:
+ case R_TILEPRO_IMM16_X0_TLS_LE_LO:
+ case R_TILEPRO_IMM16_X1_TLS_LE_LO:
+ case R_TILEPRO_IMM16_X0_TLS_LE_HI:
+ case R_TILEPRO_IMM16_X1_TLS_LE_HI:
+ case R_TILEPRO_IMM16_X0_TLS_LE_HA:
+ case R_TILEPRO_IMM16_X1_TLS_LE_HA:
+ if (info->shared)
+ goto r_tilepro_plt32;
+ break;
+
case R_TILEPRO_IMM16_X0_TLS_GD:
case R_TILEPRO_IMM16_X1_TLS_GD:
case R_TILEPRO_IMM16_X0_TLS_GD_LO:
@@ -1358,7 +1536,8 @@ tilepro_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_TILEPRO_IMM16_X1_TLS_GD_HI:
case R_TILEPRO_IMM16_X0_TLS_GD_HA:
case R_TILEPRO_IMM16_X1_TLS_GD_HA:
- tls_type = GOT_TLS_GD;
+ BFD_ASSERT (info->shared);
+ tls_type = GOT_TLS_GD;
goto have_got_reference;
case R_TILEPRO_IMM16_X0_TLS_IE:
@@ -1454,6 +1633,24 @@ tilepro_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
}
break;
+ case R_TILEPRO_TLS_GD_CALL:
+ if (info->shared)
+ {
+ /* These are basically R_TILEPRO_JOFFLONG_X1_PLT relocs
+ against __tls_get_addr. */
+ struct bfd_link_hash_entry *bh = NULL;
+ if (! _bfd_generic_link_add_one_symbol (info, abfd,
+ "__tls_get_addr", 0,
+ bfd_und_section_ptr, 0,
+ NULL, FALSE, FALSE,
+ &bh))
+ return FALSE;
+ h = (struct elf_link_hash_entry *) bh;
+ }
+ else
+ break;
+ /* Fall through */
+
case R_TILEPRO_JOFFLONG_X1_PLT:
/* This symbol requires a procedure linkage table entry. We
actually build the entry in adjust_dynamic_symbol,
@@ -1523,15 +1720,14 @@ tilepro_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_TILEPRO_SHAMT_Y0:
case R_TILEPRO_SHAMT_Y1:
if (h != NULL)
- {
h->non_got_ref = 1;
- if (!info->shared)
- {
- /* We may need a .plt entry if the function this reloc
- refers to is in a shared lib. */
- h->plt.refcount += 1;
- }
+ r_tilepro_plt32:
+ if (h != NULL && !info->shared)
+ {
+ /* We may need a .plt entry if the function this reloc
+ refers to is in a shared lib. */
+ h->plt.refcount += 1;
}
/* If we are creating a shared library, and this is a reloc
@@ -1725,6 +1921,7 @@ tilepro_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
}
r_type = ELF32_R_TYPE (rel->r_info);
+ r_type = tilepro_elf_tls_transition (info, r_type, h != NULL);
switch (r_type)
{
case R_TILEPRO_IMM16_X0_GOT:
@@ -1758,7 +1955,8 @@ tilepro_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
}
else
{
- if (local_got_refcounts[r_symndx] > 0)
+ if (local_got_refcounts &&
+ local_got_refcounts[r_symndx] > 0)
local_got_refcounts[r_symndx]--;
}
break;
@@ -2040,7 +2238,14 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
h->needs_plt = 0;
}
- if (h->got.refcount > 0)
+ /* If a TLS_IE symbol is now local to the binary, make it a TLS_LE
+ requiring no TLS entry. */
+ if (h->got.refcount > 0
+ && !info->shared
+ && h->dynindx == -1
+ && tilepro_elf_hash_entry(h)->tls_type == GOT_TLS_IE)
+ h->got.offset = (bfd_vma) -1;
+ else if (h->got.refcount > 0)
{
asection *s;
bfd_boolean dyn;
@@ -2467,6 +2672,87 @@ tpoff (struct bfd_link_info *info, bfd_vma address)
return (address - htab->tls_sec->vma);
}
+/* Replace the MASK bits in ADDR with those in INSN, for the next
+ TILEPRO_BUNDLE_SIZE_IN_BYTES bytes. */
+
+static void
+tilepro_replace_insn (bfd_byte *addr, const bfd_byte *mask,
+ const bfd_byte *insn)
+{
+ int i;
+ for (i = 0; i < TILEPRO_BUNDLE_SIZE_IN_BYTES; i++)
+ {
+ addr[i] = (addr[i] & ~mask[i]) | (insn[i] & mask[i]);
+ }
+}
+
+/* Mask to extract the bits corresponding to an instruction in a
+ specific pipe of a bundle. */
+static const bfd_byte insn_mask_X1[] = {
+ 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f
+};
+
+/* Mask to extract the bits corresponding to an instruction in a
+ specific pipe of a bundle, minus the destination operand and the
+ first source operand. */
+static const bfd_byte insn_mask_X0_no_dest_no_srca[] = {
+ 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00
+};
+
+static const bfd_byte insn_mask_X1_no_dest_no_srca[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f
+};
+
+static const bfd_byte insn_mask_Y0_no_dest_no_srca[] = {
+ 0x00, 0xf0, 0x0f, 0x78, 0x00, 0x00, 0x00, 0x00
+};
+
+static const bfd_byte insn_mask_Y1_no_dest_no_srca[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x78
+};
+
+/* Mask to extract the first source operand of an instruction. */
+static const bfd_byte srca_mask_X0[] = {
+ 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const bfd_byte srca_mask_X1[] = {
+ 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00
+};
+
+/* Various instructions synthesized to support tls references. */
+
+/* move r0, r0 in the X1 pipe, used for tls le. */
+static const bfd_byte insn_tls_le_move_X1[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x33, 0x08
+};
+
+/* move r0, zero in the X0 and X1 pipe, used for tls le. */
+static const bfd_byte insn_tls_le_move_zero_X0X1[] = {
+ 0xc0, 0xff, 0xcf, 0x00, 0xe0, 0xff, 0x33, 0x08
+};
+
+/* lw r0, r0 in the X1 pipe, used for tls ie. */
+static const bfd_byte insn_tls_ie_lw_X1[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x0b, 0x40
+};
+
+/* add r0, r0, tp in various pipes, used for tls ie. */
+static const bfd_byte insn_tls_ie_add_X0X1[] = {
+ 0x00, 0x50, 0x0f, 0x00, 0x00, 0xa8, 0x07, 0x08
+};
+static const bfd_byte insn_tls_ie_add_Y0Y1[] = {
+ 0x00, 0x50, 0x03, 0x08, 0x00, 0xa8, 0x01, 0x8c
+};
+
+/* move r0, r0 in various pipes, used for tls gd. */
+static const bfd_byte insn_tls_gd_add_X0X1[] = {
+ 0x00, 0xf0, 0xcf, 0x00, 0x00, 0xf8, 0x33, 0x08
+};
+static const bfd_byte insn_tls_gd_add_Y0Y1[] = {
+ 0x00, 0xf0, 0x0b, 0x18, 0x00, 0xf8, 0x05, 0x9c
+};
+
/* Relocate an TILEPRO ELF section.
The RELOCATE_SECTION function is called by the new ELF backend linker
@@ -2531,6 +2817,7 @@ tilepro_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
for (; rel < relend; rel++)
{
int r_type, tls_type;
+ bfd_boolean is_tls_iele, is_tls_le;
reloc_howto_type *howto;
unsigned long r_symndx;
struct elf_link_hash_entry *h;
@@ -2613,6 +2900,118 @@ tilepro_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
switch (r_type)
{
+ case R_TILEPRO_TLS_GD_CALL:
+ case R_TILEPRO_IMM8_X0_TLS_GD_ADD:
+ case R_TILEPRO_IMM8_Y0_TLS_GD_ADD:
+ case R_TILEPRO_IMM8_X1_TLS_GD_ADD:
+ case R_TILEPRO_IMM8_Y1_TLS_GD_ADD:
+ case R_TILEPRO_IMM16_X0_TLS_GD_HA:
+ case R_TILEPRO_IMM16_X1_TLS_GD_HA:
+ case R_TILEPRO_IMM16_X0_TLS_IE_HA:
+ case R_TILEPRO_IMM16_X1_TLS_IE_HA:
+ tls_type = GOT_UNKNOWN;
+ if (h == NULL && local_got_offsets)
+ tls_type =
+ _bfd_tilepro_elf_local_got_tls_type (input_bfd) [r_symndx];
+ else if (h != NULL)
+ tls_type = tilepro_elf_hash_entry(h)->tls_type;
+
+ is_tls_iele = (! info->shared || tls_type == GOT_TLS_IE);
+ is_tls_le = is_tls_iele && (!info->shared
+ && (h == NULL || h->dynindx == -1));
+
+ if (r_type == R_TILEPRO_TLS_GD_CALL)
+ {
+ if (is_tls_le)
+ {
+ /* GD -> LE */
+ tilepro_replace_insn (contents + rel->r_offset,
+ insn_mask_X1, insn_tls_le_move_X1);
+ continue;
+ }
+ else if (is_tls_iele)
+ {
+ /* GD -> IE */
+ tilepro_replace_insn (contents + rel->r_offset,
+ insn_mask_X1, insn_tls_ie_lw_X1);
+ continue;
+ }
+
+ /* GD -> GD */
+ h = (struct elf_link_hash_entry *)
+ bfd_link_hash_lookup (info->hash, "__tls_get_addr", FALSE,
+ FALSE, TRUE);
+ BFD_ASSERT (h != NULL);
+ r_type = R_TILEPRO_JOFFLONG_X1_PLT;
+ howto = tilepro_elf_howto_table + r_type;
+ }
+ else if (r_type == R_TILEPRO_IMM16_X0_TLS_GD_HA
+ || r_type == R_TILEPRO_IMM16_X0_TLS_IE_HA)
+ {
+ if (is_tls_le)
+ tilepro_replace_insn (contents + rel->r_offset, srca_mask_X0,
+ insn_tls_le_move_zero_X0X1);
+ }
+ else if (r_type == R_TILEPRO_IMM16_X1_TLS_GD_HA
+ || r_type == R_TILEPRO_IMM16_X1_TLS_IE_HA)
+ {
+ if (is_tls_le)
+ tilepro_replace_insn (contents + rel->r_offset, srca_mask_X1,
+ insn_tls_le_move_zero_X0X1);
+ }
+ else
+ {
+ const bfd_byte *mask = NULL;
+ const bfd_byte *add_insn = NULL;
+
+ switch (r_type)
+ {
+ case R_TILEPRO_IMM8_X0_TLS_GD_ADD:
+ add_insn = is_tls_iele ? insn_tls_ie_add_X0X1
+ : insn_tls_gd_add_X0X1;
+ mask = insn_mask_X0_no_dest_no_srca;
+ break;
+ case R_TILEPRO_IMM8_X1_TLS_GD_ADD:
+ add_insn = is_tls_iele ? insn_tls_ie_add_X0X1
+ : insn_tls_gd_add_X0X1;
+ mask = insn_mask_X1_no_dest_no_srca;
+ break;
+ case R_TILEPRO_IMM8_Y0_TLS_GD_ADD:
+ add_insn = is_tls_iele ? insn_tls_ie_add_Y0Y1
+ : insn_tls_gd_add_Y0Y1;
+ mask = insn_mask_Y0_no_dest_no_srca;
+ break;
+ case R_TILEPRO_IMM8_Y1_TLS_GD_ADD:
+ add_insn = is_tls_iele ? insn_tls_ie_add_Y0Y1
+ : insn_tls_gd_add_Y0Y1;
+ mask = insn_mask_Y1_no_dest_no_srca;
+ break;
+ }
+
+ tilepro_replace_insn (contents + rel->r_offset, mask, add_insn);
+
+ continue;
+ }
+ break;
+ case R_TILEPRO_TLS_IE_LOAD:
+ if (!info->shared && (h == NULL || h->dynindx == -1))
+ /* IE -> LE */
+ tilepro_replace_insn (contents + rel->r_offset,
+ insn_mask_X1_no_dest_no_srca,
+ insn_tls_le_move_X1);
+ else
+ /* IE -> IE */
+ tilepro_replace_insn (contents + rel->r_offset,
+ insn_mask_X1_no_dest_no_srca,
+ insn_tls_ie_lw_X1);
+ continue;
+ break;
+ default:
+ break;
+ }
+
+ switch (r_type)
+ {
case R_TILEPRO_IMM16_X0_GOT:
case R_TILEPRO_IMM16_X1_GOT:
case R_TILEPRO_IMM16_X0_GOT_LO:
@@ -2908,6 +3307,45 @@ tilepro_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
}
break;
+ case R_TILEPRO_IMM16_X0_TLS_LE:
+ case R_TILEPRO_IMM16_X1_TLS_LE:
+ case R_TILEPRO_IMM16_X0_TLS_LE_LO:
+ case R_TILEPRO_IMM16_X1_TLS_LE_LO:
+ case R_TILEPRO_IMM16_X0_TLS_LE_HI:
+ case R_TILEPRO_IMM16_X1_TLS_LE_HI:
+ case R_TILEPRO_IMM16_X0_TLS_LE_HA:
+ case R_TILEPRO_IMM16_X1_TLS_LE_HA:
+ if (info->shared)
+ {
+ Elf_Internal_Rela outrel;
+ bfd_boolean skip;
+
+ BFD_ASSERT (sreloc != NULL);
+ skip = FALSE;
+ outrel.r_offset =
+ _bfd_elf_section_offset (output_bfd, info, input_section,
+ rel->r_offset);
+ if (outrel.r_offset == (bfd_vma) -1)
+ skip = TRUE;
+ else if (outrel.r_offset == (bfd_vma) -2)
+ skip = TRUE;
+ outrel.r_offset += (input_section->output_section->vma
+ + input_section->output_offset);
+ if (skip)
+ memset (&outrel, 0, sizeof outrel);
+ else
+ {
+ outrel.r_info = ELF32_R_INFO (0, r_type);
+ outrel.r_addend = relocation - dtpoff_base (info)
+ + rel->r_addend;
+ }
+
+ tilepro_elf_append_rela_32 (output_bfd, sreloc, &outrel);
+ continue;
+ }
+ relocation = tpoff (info, relocation);
+ break;
+
case R_TILEPRO_IMM16_X0_TLS_GD:
case R_TILEPRO_IMM16_X1_TLS_GD:
case R_TILEPRO_IMM16_X0_TLS_GD_LO:
@@ -2916,9 +3354,6 @@ tilepro_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
case R_TILEPRO_IMM16_X1_TLS_GD_HI:
case R_TILEPRO_IMM16_X0_TLS_GD_HA:
case R_TILEPRO_IMM16_X1_TLS_GD_HA:
- tls_type = GOT_TLS_GD;
- goto have_tls_reference;
-
case R_TILEPRO_IMM16_X0_TLS_IE:
case R_TILEPRO_IMM16_X1_TLS_IE:
case R_TILEPRO_IMM16_X0_TLS_IE_LO:
@@ -2927,45 +3362,32 @@ tilepro_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
case R_TILEPRO_IMM16_X1_TLS_IE_HI:
case R_TILEPRO_IMM16_X0_TLS_IE_HA:
case R_TILEPRO_IMM16_X1_TLS_IE_HA:
- tls_type = GOT_TLS_IE;
- /* Fall through. */
-
- have_tls_reference:
+ r_type = tilepro_elf_tls_transition (info, r_type, h == NULL);
+ tls_type = GOT_UNKNOWN;
if (h == NULL && local_got_offsets)
tls_type
= _bfd_tilepro_elf_local_got_tls_type (input_bfd) [r_symndx];
else if (h != NULL)
{
tls_type = tilepro_elf_hash_entry(h)->tls_type;
+ if (!info->shared && h->dynindx == -1 && tls_type == GOT_TLS_IE)
+ r_type = tilepro_tls_translate_to_le (r_type);
}
if (tls_type == GOT_TLS_IE)
- switch (r_type)
- {
- case R_TILEPRO_IMM16_X0_TLS_GD:
- r_type = R_TILEPRO_IMM16_X0_TLS_IE;
- break;
- case R_TILEPRO_IMM16_X1_TLS_GD:
- r_type = R_TILEPRO_IMM16_X1_TLS_IE;
- break;
- case R_TILEPRO_IMM16_X0_TLS_GD_LO:
- r_type = R_TILEPRO_IMM16_X0_TLS_IE_LO;
- break;
- case R_TILEPRO_IMM16_X1_TLS_GD_LO:
- r_type = R_TILEPRO_IMM16_X1_TLS_IE_LO;
- break;
- case R_TILEPRO_IMM16_X0_TLS_GD_HI:
- r_type = R_TILEPRO_IMM16_X0_TLS_IE_HI;
- break;
- case R_TILEPRO_IMM16_X1_TLS_GD_HI:
- r_type = R_TILEPRO_IMM16_X1_TLS_IE_HI;
- break;
- case R_TILEPRO_IMM16_X0_TLS_GD_HA:
- r_type = R_TILEPRO_IMM16_X0_TLS_IE_HA;
- break;
- case R_TILEPRO_IMM16_X1_TLS_GD_HA:
- r_type = R_TILEPRO_IMM16_X1_TLS_IE_HA;
- break;
- }
+ r_type = tilepro_tls_translate_to_ie (r_type);
+
+ if (r_type == R_TILEPRO_IMM16_X0_TLS_LE
+ || r_type == R_TILEPRO_IMM16_X1_TLS_LE
+ || r_type == R_TILEPRO_IMM16_X0_TLS_LE_LO
+ || r_type == R_TILEPRO_IMM16_X1_TLS_LE_LO
+ || r_type == R_TILEPRO_IMM16_X0_TLS_LE_HI
+ || r_type == R_TILEPRO_IMM16_X1_TLS_LE_HI
+ || r_type == R_TILEPRO_IMM16_X0_TLS_LE_HA
+ || r_type == R_TILEPRO_IMM16_X1_TLS_LE_HA)
+ {
+ relocation = tpoff (info, relocation);
+ break;
+ }
if (h != NULL)
{
diff --git a/bfd/elfxx-tilegx.c b/bfd/elfxx-tilegx.c
index 2aaa3d3175..27e5179db4 100644
--- a/bfd/elfxx-tilegx.c
+++ b/bfd/elfxx-tilegx.c
@@ -490,35 +490,38 @@ static reloc_howto_type tilegx_elf_howto_table [] =
TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X0_HW0_GOT, 0),
TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW0_GOT, 0),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X0_HW1_GOT, 16),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW1_GOT, 16),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X0_HW2_GOT, 32),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW2_GOT, 32),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X0_HW3_GOT, 48),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW3_GOT, 48),
+ /* These relocs are currently not defined. */
+ EMPTY_HOWTO (66),
+ EMPTY_HOWTO (67),
+ EMPTY_HOWTO (68),
+ EMPTY_HOWTO (69),
+ EMPTY_HOWTO (70),
+ EMPTY_HOWTO (71),
TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X0_HW0_LAST_GOT, 0),
TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X1_HW0_LAST_GOT, 0),
TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X0_HW1_LAST_GOT, 16),
TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X1_HW1_LAST_GOT, 16),
- TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X0_HW2_LAST_GOT, 32),
- TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X1_HW2_LAST_GOT, 32),
+ /* These relocs are currently not defined. */
+ EMPTY_HOWTO (76),
+ EMPTY_HOWTO (77),
TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X0_HW0_TLS_GD, 0),
TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW0_TLS_GD, 0),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X0_HW1_TLS_GD, 16),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW1_TLS_GD, 16),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X0_HW2_TLS_GD, 32),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW2_TLS_GD, 32),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X0_HW3_TLS_GD, 48),
- TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW3_TLS_GD, 48),
+
+ TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X0_HW0_TLS_LE, 0),
+ TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW0_TLS_LE, 0),
+ TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE, 0),
+ TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE, 0),
+ TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE, 16),
+ TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE, 16),
TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD, 0),
TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD, 0),
TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD, 16),
TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD, 16),
- TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD, 32),
- TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD, 32),
+ EMPTY_HOWTO (90),
+ EMPTY_HOWTO (91),
#define TILEGX_IMM16_HOWTO_TLS_IE(name, rshift) \
HOWTO (name, rshift, 1, 16, FALSE, 0, \
@@ -527,12 +530,12 @@ static reloc_howto_type tilegx_elf_howto_table [] =
TILEGX_IMM16_HOWTO_TLS_IE (R_TILEGX_IMM16_X0_HW0_TLS_IE, 0),
TILEGX_IMM16_HOWTO_TLS_IE (R_TILEGX_IMM16_X1_HW0_TLS_IE, 0),
- TILEGX_IMM16_HOWTO_TLS_IE (R_TILEGX_IMM16_X0_HW1_TLS_IE, 16),
- TILEGX_IMM16_HOWTO_TLS_IE (R_TILEGX_IMM16_X1_HW1_TLS_IE, 16),
- TILEGX_IMM16_HOWTO_TLS_IE (R_TILEGX_IMM16_X0_HW2_TLS_IE, 32),
- TILEGX_IMM16_HOWTO_TLS_IE (R_TILEGX_IMM16_X1_HW2_TLS_IE, 32),
- TILEGX_IMM16_HOWTO_TLS_IE (R_TILEGX_IMM16_X0_HW3_TLS_IE, 48),
- TILEGX_IMM16_HOWTO_TLS_IE (R_TILEGX_IMM16_X1_HW3_TLS_IE, 48),
+ EMPTY_HOWTO (94),
+ EMPTY_HOWTO (95),
+ EMPTY_HOWTO (96),
+ EMPTY_HOWTO (97),
+ EMPTY_HOWTO (98),
+ EMPTY_HOWTO (99),
#define TILEGX_IMM16_HOWTO_LAST_TLS_IE(name, rshift) \
HOWTO (name, rshift, 1, 16, FALSE, 0, \
@@ -543,8 +546,8 @@ static reloc_howto_type tilegx_elf_howto_table [] =
TILEGX_IMM16_HOWTO_LAST_TLS_IE (R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE, 0),
TILEGX_IMM16_HOWTO_LAST_TLS_IE (R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE, 16),
TILEGX_IMM16_HOWTO_LAST_TLS_IE (R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE, 16),
- TILEGX_IMM16_HOWTO_LAST_TLS_IE (R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE, 32),
- TILEGX_IMM16_HOWTO_LAST_TLS_IE (R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE, 32),
+ EMPTY_HOWTO (104),
+ EMPTY_HOWTO (105),
HOWTO(R_TILEGX_TLS_DTPMOD64, 0, 0, 0, FALSE, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPMOD64",
@@ -564,7 +567,31 @@ static reloc_howto_type tilegx_elf_howto_table [] =
FALSE, 0, -1, TRUE),
HOWTO(R_TILEGX_TLS_TPOFF32, 0, 0, 0, FALSE, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_TILEGX_TLS_TPOFF32",
- FALSE, 0, 0, TRUE)
+ FALSE, 0, 0, TRUE),
+
+ HOWTO (R_TILEGX_TLS_GD_CALL, /* type */
+ TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 27, /* bitsize */
+ TRUE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_signed,/* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_TILEGX_TLS_GD_CALL", /* name */
+ FALSE, /* partial_inplace */
+ 0, /* src_mask */
+ -1, /* dst_mask */
+ TRUE), /* pcrel_offset */
+
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X0_TLS_GD_ADD, 0, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X1_TLS_GD_ADD, 0, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y0_TLS_GD_ADD, 0, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y1_TLS_GD_ADD, 0, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_TLS_IE_LOAD, 0, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X0_TLS_ADD, 0, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X1_TLS_ADD, 0, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y0_TLS_ADD, 0, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y1_TLS_ADD, 0, 8),
};
static reloc_howto_type tilegx_elf_howto_table2 [] =
@@ -686,46 +713,28 @@ static const reloc_map tilegx_reloc_map [] =
SIMPLE_REMAP (TILEGX_IMM16_X1_HW2_LAST_PCREL)
SIMPLE_REMAP (TILEGX_IMM16_X0_HW0_GOT)
SIMPLE_REMAP (TILEGX_IMM16_X1_HW0_GOT)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW1_GOT)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW1_GOT)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW2_GOT)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW2_GOT)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW3_GOT)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW3_GOT)
SIMPLE_REMAP (TILEGX_IMM16_X0_HW0_LAST_GOT)
SIMPLE_REMAP (TILEGX_IMM16_X1_HW0_LAST_GOT)
SIMPLE_REMAP (TILEGX_IMM16_X0_HW1_LAST_GOT)
SIMPLE_REMAP (TILEGX_IMM16_X1_HW1_LAST_GOT)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW2_LAST_GOT)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW2_LAST_GOT)
SIMPLE_REMAP (TILEGX_IMM16_X0_HW0_TLS_GD)
SIMPLE_REMAP (TILEGX_IMM16_X1_HW0_TLS_GD)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW1_TLS_GD)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW1_TLS_GD)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW2_TLS_GD)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW2_TLS_GD)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW3_TLS_GD)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW3_TLS_GD)
+ SIMPLE_REMAP (TILEGX_IMM16_X0_HW0_TLS_LE)
+ SIMPLE_REMAP (TILEGX_IMM16_X1_HW0_TLS_LE)
+ SIMPLE_REMAP (TILEGX_IMM16_X0_HW0_LAST_TLS_LE)
+ SIMPLE_REMAP (TILEGX_IMM16_X1_HW0_LAST_TLS_LE)
+ SIMPLE_REMAP (TILEGX_IMM16_X0_HW1_LAST_TLS_LE)
+ SIMPLE_REMAP (TILEGX_IMM16_X1_HW1_LAST_TLS_LE)
SIMPLE_REMAP (TILEGX_IMM16_X0_HW0_LAST_TLS_GD)
SIMPLE_REMAP (TILEGX_IMM16_X1_HW0_LAST_TLS_GD)
SIMPLE_REMAP (TILEGX_IMM16_X0_HW1_LAST_TLS_GD)
SIMPLE_REMAP (TILEGX_IMM16_X1_HW1_LAST_TLS_GD)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW2_LAST_TLS_GD)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW2_LAST_TLS_GD)
SIMPLE_REMAP (TILEGX_IMM16_X0_HW0_TLS_IE)
SIMPLE_REMAP (TILEGX_IMM16_X1_HW0_TLS_IE)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW1_TLS_IE)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW1_TLS_IE)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW2_TLS_IE)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW2_TLS_IE)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW3_TLS_IE)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW3_TLS_IE)
SIMPLE_REMAP (TILEGX_IMM16_X0_HW0_LAST_TLS_IE)
SIMPLE_REMAP (TILEGX_IMM16_X1_HW0_LAST_TLS_IE)
SIMPLE_REMAP (TILEGX_IMM16_X0_HW1_LAST_TLS_IE)
SIMPLE_REMAP (TILEGX_IMM16_X1_HW1_LAST_TLS_IE)
- SIMPLE_REMAP (TILEGX_IMM16_X0_HW2_LAST_TLS_IE)
- SIMPLE_REMAP (TILEGX_IMM16_X1_HW2_LAST_TLS_IE)
SIMPLE_REMAP (TILEGX_TLS_DTPMOD64)
SIMPLE_REMAP (TILEGX_TLS_DTPOFF64)
@@ -735,6 +744,17 @@ static const reloc_map tilegx_reloc_map [] =
SIMPLE_REMAP (TILEGX_TLS_DTPOFF32)
SIMPLE_REMAP (TILEGX_TLS_TPOFF32)
+ SIMPLE_REMAP (TILEGX_TLS_GD_CALL)
+ SIMPLE_REMAP (TILEGX_IMM8_X0_TLS_GD_ADD)
+ SIMPLE_REMAP (TILEGX_IMM8_X1_TLS_GD_ADD)
+ SIMPLE_REMAP (TILEGX_IMM8_Y0_TLS_GD_ADD)
+ SIMPLE_REMAP (TILEGX_IMM8_Y1_TLS_GD_ADD)
+ SIMPLE_REMAP (TILEGX_TLS_IE_LOAD)
+ SIMPLE_REMAP (TILEGX_IMM8_X0_TLS_ADD)
+ SIMPLE_REMAP (TILEGX_IMM8_X1_TLS_ADD)
+ SIMPLE_REMAP (TILEGX_IMM8_Y0_TLS_ADD)
+ SIMPLE_REMAP (TILEGX_IMM8_Y1_TLS_ADD)
+
#undef SIMPLE_REMAP
#undef TH_REMAP
@@ -824,6 +844,10 @@ struct tilegx_elf_link_hash_table
asection *sdynbss;
asection *srelbss;
+ /* Whether LE transition has been disabled for some of the
+ sections. */
+ bfd_boolean disable_le_transition;
+
/* Small local sym to section mapping cache. */
struct sym_cache sym_cache;
};
@@ -920,7 +944,7 @@ tilegx_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED,
{
unsigned int r_type = TILEGX_ELF_R_TYPE (dst->r_info);
- if (r_type <= (unsigned int) R_TILEGX_TLS_TPOFF32)
+ if (r_type <= (unsigned int) R_TILEGX_IMM8_Y1_TLS_ADD)
cache_ptr->howto = &tilegx_elf_howto_table [r_type];
else if (r_type - R_TILEGX_GNU_VTINHERIT
<= (unsigned int) R_TILEGX_GNU_VTENTRY)
@@ -1003,10 +1027,18 @@ static const tilegx_create_func reloc_to_create_func[] =
create_Imm16_X1,
create_Imm16_X0,
create_Imm16_X1,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
create_Imm16_X0,
create_Imm16_X1,
create_Imm16_X0,
create_Imm16_X1,
+ NULL,
+ NULL,
create_Imm16_X0,
create_Imm16_X1,
create_Imm16_X0,
@@ -1019,30 +1051,20 @@ static const tilegx_create_func reloc_to_create_func[] =
create_Imm16_X1,
create_Imm16_X0,
create_Imm16_X1,
+ NULL,
+ NULL,
create_Imm16_X0,
create_Imm16_X1,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
create_Imm16_X0,
create_Imm16_X1,
create_Imm16_X0,
create_Imm16_X1,
- create_Imm16_X0,
- create_Imm16_X1,
- create_Imm16_X0,
- create_Imm16_X1,
- create_Imm16_X0,
- create_Imm16_X1,
- create_Imm16_X0,
- create_Imm16_X1,
- create_Imm16_X0,
- create_Imm16_X1,
- create_Imm16_X0,
- create_Imm16_X1,
- create_Imm16_X0,
- create_Imm16_X1,
- create_Imm16_X0,
- create_Imm16_X1,
- create_Imm16_X0,
- create_Imm16_X1
};
static void
@@ -1538,6 +1560,83 @@ tilegx_elf_copy_indirect_symbol (struct bfd_link_info *info,
_bfd_elf_link_hash_copy_indirect (info, dir, ind);
}
+static int
+tilegx_tls_translate_to_le (int r_type)
+{
+ switch (r_type)
+ {
+ case R_TILEGX_IMM16_X0_HW0_TLS_GD:
+ case R_TILEGX_IMM16_X0_HW0_TLS_IE:
+ return R_TILEGX_IMM16_X0_HW0_TLS_LE;
+
+ case R_TILEGX_IMM16_X1_HW0_TLS_GD:
+ case R_TILEGX_IMM16_X1_HW0_TLS_IE:
+ return R_TILEGX_IMM16_X1_HW0_TLS_LE;
+
+ case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
+ case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
+ return R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE;
+
+ case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
+ case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
+ return R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE;
+
+ case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
+ case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
+ return R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE;
+
+ case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
+ case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
+ return R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE;
+ }
+ return r_type;
+}
+
+static int
+tilegx_tls_translate_to_ie (int r_type)
+{
+ switch (r_type)
+ {
+ case R_TILEGX_IMM16_X0_HW0_TLS_GD:
+ case R_TILEGX_IMM16_X0_HW0_TLS_IE:
+ return R_TILEGX_IMM16_X0_HW0_TLS_IE;
+
+ case R_TILEGX_IMM16_X1_HW0_TLS_GD:
+ case R_TILEGX_IMM16_X1_HW0_TLS_IE:
+ return R_TILEGX_IMM16_X1_HW0_TLS_IE;
+
+ case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
+ case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
+ return R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE;
+
+ case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
+ case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
+ return R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE;
+
+ case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
+ case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
+ return R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE;
+
+ case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
+ case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
+ return R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE;
+ }
+ return r_type;
+}
+
+static int
+tilegx_elf_tls_transition (struct bfd_link_info *info, int r_type,
+ int is_local, bfd_boolean disable_le_transition)
+{
+ if (info->shared)
+ return r_type;
+
+ if (is_local && !disable_le_transition)
+ return tilegx_tls_translate_to_le (r_type);
+ else
+ return tilegx_tls_translate_to_ie (r_type);
+}
+
/* Look through the relocs for a section during the first phase, and
allocate space in the global offset table or procedure linkage
table. */
@@ -1553,6 +1652,7 @@ tilegx_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
const Elf_Internal_Rela *rel_end;
asection *sreloc;
int num_relocs;
+ bfd_boolean has_tls_gd_or_ie = FALSE, has_tls_add = FALSE;
if (info->relocatable)
return TRUE;
@@ -1571,6 +1671,33 @@ tilegx_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
htab->elf.dynobj = abfd;
rel_end = relocs + num_relocs;
+
+ /* Check whether to do optimization to transform TLS GD/IE
+ referehces to TLS LE. We disable it if we're linking with old
+ TLS code sequences that do not support such optimization. Old
+ TLS code sequences have tls_gd_call/tls_ie_load relocations but
+ no tls_add relocations. */
+ for (rel = relocs; rel < rel_end && !has_tls_add; rel++)
+ {
+ int r_type = TILEGX_ELF_R_TYPE (rel->r_info);
+ switch (r_type)
+ {
+ case R_TILEGX_TLS_GD_CALL:
+ case R_TILEGX_TLS_IE_LOAD:
+ has_tls_gd_or_ie = TRUE;
+ break;
+ case R_TILEGX_IMM8_X0_TLS_ADD:
+ case R_TILEGX_IMM8_Y0_TLS_ADD:
+ case R_TILEGX_IMM8_X1_TLS_ADD:
+ case R_TILEGX_IMM8_Y1_TLS_ADD:
+ has_tls_add = TRUE;
+ break;
+ }
+ }
+
+ sec->sec_flg0 = (has_tls_gd_or_ie && !has_tls_add);
+ htab->disable_le_transition |= sec->sec_flg0;
+
for (rel = relocs; rel < rel_end; rel++)
{
unsigned int r_type;
@@ -1598,39 +1725,36 @@ tilegx_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
h = (struct elf_link_hash_entry *) h->root.u.i.link;
}
+ r_type = tilegx_elf_tls_transition (info, r_type, h == NULL,
+ sec->sec_flg0);
switch (r_type)
{
+ case R_TILEGX_IMM16_X0_HW0_TLS_LE:
+ case R_TILEGX_IMM16_X1_HW0_TLS_LE:
+ case R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE:
+ case R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE:
+ case R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE:
+ case R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE:
+ if (info->shared)
+ goto r_tilegx_plt32;
+ break;
+
case R_TILEGX_IMM16_X0_HW0_TLS_GD:
case R_TILEGX_IMM16_X1_HW0_TLS_GD:
- case R_TILEGX_IMM16_X0_HW1_TLS_GD:
- case R_TILEGX_IMM16_X1_HW1_TLS_GD:
- case R_TILEGX_IMM16_X0_HW2_TLS_GD:
- case R_TILEGX_IMM16_X1_HW2_TLS_GD:
- case R_TILEGX_IMM16_X0_HW3_TLS_GD:
- case R_TILEGX_IMM16_X1_HW3_TLS_GD:
case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
- case R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD:
- case R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD:
- tls_type = GOT_TLS_GD;
+ BFD_ASSERT (info->shared);
+ tls_type = GOT_TLS_GD;
goto have_got_reference;
case R_TILEGX_IMM16_X0_HW0_TLS_IE:
case R_TILEGX_IMM16_X1_HW0_TLS_IE:
- case R_TILEGX_IMM16_X0_HW1_TLS_IE:
- case R_TILEGX_IMM16_X1_HW1_TLS_IE:
- case R_TILEGX_IMM16_X0_HW2_TLS_IE:
- case R_TILEGX_IMM16_X1_HW2_TLS_IE:
- case R_TILEGX_IMM16_X0_HW3_TLS_IE:
- case R_TILEGX_IMM16_X1_HW3_TLS_IE:
case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
- case R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE:
- case R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE:
tls_type = GOT_TLS_IE;
if (info->shared)
info->flags |= DF_STATIC_TLS;
@@ -1638,18 +1762,10 @@ tilegx_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_TILEGX_IMM16_X0_HW0_GOT:
case R_TILEGX_IMM16_X1_HW0_GOT:
- case R_TILEGX_IMM16_X0_HW1_GOT:
- case R_TILEGX_IMM16_X1_HW1_GOT:
- case R_TILEGX_IMM16_X0_HW2_GOT:
- case R_TILEGX_IMM16_X1_HW2_GOT:
- case R_TILEGX_IMM16_X0_HW3_GOT:
- case R_TILEGX_IMM16_X1_HW3_GOT:
case R_TILEGX_IMM16_X0_HW0_LAST_GOT:
case R_TILEGX_IMM16_X1_HW0_LAST_GOT:
case R_TILEGX_IMM16_X0_HW1_LAST_GOT:
case R_TILEGX_IMM16_X1_HW1_LAST_GOT:
- case R_TILEGX_IMM16_X0_HW2_LAST_GOT:
- case R_TILEGX_IMM16_X1_HW2_LAST_GOT:
tls_type = GOT_NORMAL;
/* Fall Through */
@@ -1720,6 +1836,24 @@ tilegx_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
}
break;
+ case R_TILEGX_TLS_GD_CALL:
+ if (info->shared)
+ {
+ /* These are basically R_TILEGX_JUMPOFF_X1_PLT relocs
+ against __tls_get_addr. */
+ struct bfd_link_hash_entry *bh = NULL;
+ if (! _bfd_generic_link_add_one_symbol (info, abfd,
+ "__tls_get_addr", 0,
+ bfd_und_section_ptr, 0,
+ NULL, FALSE, FALSE,
+ &bh))
+ return FALSE;
+ h = (struct elf_link_hash_entry *) bh;
+ }
+ else
+ break;
+ /* Fall through */
+
case R_TILEGX_JUMPOFF_X1_PLT:
/* This symbol requires a procedure linkage table entry. We
actually build the entry in adjust_dynamic_symbol,
@@ -1805,16 +1939,15 @@ tilegx_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_TILEGX_IMM16_X0_HW2_LAST:
case R_TILEGX_IMM16_X1_HW2_LAST:
if (h != NULL)
- {
- h->non_got_ref = 1;
+ h->non_got_ref = 1;
- if (!info->shared)
- {
- /* We may need a .plt entry if the function this reloc
- refers to is in a shared lib. */
- h->plt.refcount += 1;
- }
- }
+ r_tilegx_plt32:
+ if (h != NULL && !info->shared)
+ {
+ /* We may need a .plt entry if the function this reloc
+ refers to is in a shared lib. */
+ h->plt.refcount += 1;
+ }
/* If we are creating a shared library, and this is a reloc
against a global symbol, or a non PC relative reloc
@@ -2008,51 +2141,28 @@ tilegx_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
}
r_type = TILEGX_ELF_R_TYPE (rel->r_info);
-
+ r_type = tilegx_elf_tls_transition (info, r_type, h != NULL,
+ sec->sec_flg0);
switch (r_type)
{
case R_TILEGX_IMM16_X0_HW0_GOT:
case R_TILEGX_IMM16_X1_HW0_GOT:
- case R_TILEGX_IMM16_X0_HW1_GOT:
- case R_TILEGX_IMM16_X1_HW1_GOT:
- case R_TILEGX_IMM16_X0_HW2_GOT:
- case R_TILEGX_IMM16_X1_HW2_GOT:
- case R_TILEGX_IMM16_X0_HW3_GOT:
- case R_TILEGX_IMM16_X1_HW3_GOT:
case R_TILEGX_IMM16_X0_HW0_LAST_GOT:
case R_TILEGX_IMM16_X1_HW0_LAST_GOT:
case R_TILEGX_IMM16_X0_HW1_LAST_GOT:
case R_TILEGX_IMM16_X1_HW1_LAST_GOT:
- case R_TILEGX_IMM16_X0_HW2_LAST_GOT:
- case R_TILEGX_IMM16_X1_HW2_LAST_GOT:
case R_TILEGX_IMM16_X0_HW0_TLS_GD:
case R_TILEGX_IMM16_X1_HW0_TLS_GD:
- case R_TILEGX_IMM16_X0_HW1_TLS_GD:
- case R_TILEGX_IMM16_X1_HW1_TLS_GD:
- case R_TILEGX_IMM16_X0_HW2_TLS_GD:
- case R_TILEGX_IMM16_X1_HW2_TLS_GD:
- case R_TILEGX_IMM16_X0_HW3_TLS_GD:
- case R_TILEGX_IMM16_X1_HW3_TLS_GD:
case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
- case R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD:
- case R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD:
case R_TILEGX_IMM16_X0_HW0_TLS_IE:
case R_TILEGX_IMM16_X1_HW0_TLS_IE:
- case R_TILEGX_IMM16_X0_HW1_TLS_IE:
- case R_TILEGX_IMM16_X1_HW1_TLS_IE:
- case R_TILEGX_IMM16_X0_HW2_TLS_IE:
- case R_TILEGX_IMM16_X1_HW2_TLS_IE:
- case R_TILEGX_IMM16_X0_HW3_TLS_IE:
- case R_TILEGX_IMM16_X1_HW3_TLS_IE:
case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
- case R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE:
- case R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE:
if (h != NULL)
{
if (h->got.refcount > 0)
@@ -2060,7 +2170,8 @@ tilegx_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
}
else
{
- if (local_got_refcounts[r_symndx] > 0)
+ if (local_got_refcounts &&
+ local_got_refcounts[r_symndx] > 0)
local_got_refcounts[r_symndx]--;
}
break;
@@ -2361,7 +2472,15 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
h->needs_plt = 0;
}
- if (h->got.refcount > 0)
+ /* If a TLS_IE symbol is now local to the binary, make it a TLS_LE
+ requiring no TLS entry. */
+ if (h->got.refcount > 0
+ && !htab->disable_le_transition
+ && !info->shared
+ && h->dynindx == -1
+ && tilegx_elf_hash_entry(h)->tls_type == GOT_TLS_IE)
+ h->got.offset = (bfd_vma) -1;
+ else if (h->got.refcount > 0)
{
asection *s;
bfd_boolean dyn;
@@ -2781,6 +2900,125 @@ tpoff (struct bfd_link_info *info, bfd_vma address)
return (address - htab->tls_sec->vma);
}
+/* Copy SIZE bits from FROM to TO at address ADDR. */
+
+static void
+tilegx_copy_bits (bfd_byte *addr, int from, int to, int size)
+{
+ int i;
+ for (i = 0; i < size; i++)
+ {
+ int from_byte = (from + i) / 8;
+ int from_bit = (from + i) % 8;
+ int to_byte = (to + i) / 8;
+ int to_bit = (to + i) % 8;
+ bfd_byte to_mask = 1 << to_bit;
+ addr[to_byte] = (addr[to_byte] & ~to_mask)
+ | ((addr[from_byte] >> from_bit << to_bit) & to_mask);
+ }
+}
+
+/* Replace the MASK bits in ADDR with those in INSN, for the next
+ TILEGX_BUNDLE_SIZE_IN_BYTES bytes. */
+
+static void
+tilegx_replace_insn (bfd_byte *addr, const bfd_byte *mask,
+ const bfd_byte *insn)
+{
+ int i;
+ for (i = 0; i < TILEGX_BUNDLE_SIZE_IN_BYTES; i++)
+ {
+ addr[i] = (addr[i] & ~mask[i]) | (insn[i] & mask[i]);
+ }
+}
+
+/* Mask to extract the bits corresponding to an instruction in a
+ specific pipe of a bundle. */
+static const bfd_byte insn_mask_X1[] = {
+ 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x3f
+};
+
+/* Mask to extract the bits corresponding to an instruction in a
+ specific pipe of a bundle, minus the destination operand and the
+ first source operand. */
+static const bfd_byte insn_mask_X0_no_dest_no_srca[] = {
+ 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00
+};
+
+static const bfd_byte insn_mask_X1_no_dest_no_srca[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x3f
+};
+
+static const bfd_byte insn_mask_Y0_no_dest_no_srca[] = {
+ 0x00, 0xf0, 0x0f, 0x78, 0x00, 0x00, 0x00, 0x00
+};
+static const bfd_byte insn_mask_Y1_no_dest_no_srca[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x3c
+};
+
+/* Mask to extract the bits corresponding to an instruction in a
+ specific pipe of a bundle, minus the register operands. */
+static const bfd_byte insn_mask_X0_no_operand[] = {
+ 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00
+};
+
+static const bfd_byte insn_mask_X1_no_operand[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f
+};
+
+static const bfd_byte insn_mask_Y0_no_operand[] = {
+ 0x00, 0x00, 0x0c, 0x78, 0x00, 0x00, 0x00, 0x00
+};
+
+static const bfd_byte insn_mask_Y1_no_operand[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3c
+};
+
+/* Various instructions synthesized to support tls references. */
+
+/* ld r0, r0 in the X1 pipe, used for tls ie. */
+static const bfd_byte insn_tls_ie_ld_X1[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x6a, 0x28
+};
+
+/* ld4s r0, r0 in the X1 pipe, used for tls ie. */
+static const bfd_byte insn_tls_ie_ld4s_X1[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x6a, 0x28
+};
+
+/* add r0, r0, tp in various pipes, used for tls ie. */
+static const bfd_byte insn_tls_ie_add_X0X1[] = {
+ 0x00, 0x50, 0x0f, 0x50, 0x00, 0xa8, 0x07, 0x28
+};
+static const bfd_byte insn_tls_ie_add_Y0Y1[] = {
+ 0x00, 0x50, 0x27, 0x2c, 0x00, 0xa8, 0x13, 0x9a
+};
+
+/* addx r0, r0, tp in various pipes, used for tls ie. */
+static const bfd_byte insn_tls_ie_addx_X0X1[] = {
+ 0x00, 0x50, 0x0b, 0x50, 0x00, 0xa8, 0x05, 0x28
+};
+static const bfd_byte insn_tls_ie_addx_Y0Y1[] = {
+ 0x00, 0x50, 0x03, 0x2c, 0x00, 0xa8, 0x01, 0x9a
+};
+
+/* move r0, r0 in various pipes, used for tls gd. */
+static const bfd_byte insn_tls_gd_add_X0X1[] = {
+ 0x00, 0xf0, 0x07, 0x51, 0x00, 0xf8, 0x3b, 0x28
+};
+static const bfd_byte insn_tls_gd_add_Y0Y1[] = {
+ 0x00, 0xf0, 0x0b, 0x54, 0x00, 0xf8, 0x05, 0xae
+};
+
+static const bfd_byte *insn_move_X0X1 = insn_tls_gd_add_X0X1;
+static const bfd_byte *insn_move_Y0Y1 = insn_tls_gd_add_Y0Y1;
+
+static const bfd_byte *insn_add_X0X1 = insn_tls_ie_add_X0X1;
+static const bfd_byte *insn_add_Y0Y1 = insn_tls_ie_add_Y0Y1;
+
+static const bfd_byte *insn_addx_X0X1 = insn_tls_ie_addx_X0X1;
+static const bfd_byte *insn_addx_Y0Y1 = insn_tls_ie_addx_Y0Y1;
+
/* Relocate an TILEGX ELF section.
The RELOCATE_SECTION function is called by the new ELF backend linker
@@ -2845,6 +3083,7 @@ tilegx_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
for (; rel < relend; rel++)
{
int r_type, tls_type;
+ bfd_boolean is_tls_iele, is_tls_le;
reloc_howto_type *howto;
unsigned long r_symndx;
struct elf_link_hash_entry *h;
@@ -2927,20 +3166,203 @@ tilegx_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
switch (r_type)
{
+ case R_TILEGX_TLS_GD_CALL:
+ case R_TILEGX_IMM8_X0_TLS_GD_ADD:
+ case R_TILEGX_IMM8_Y0_TLS_GD_ADD:
+ case R_TILEGX_IMM8_X1_TLS_GD_ADD:
+ case R_TILEGX_IMM8_Y1_TLS_GD_ADD:
+ case R_TILEGX_IMM8_X0_TLS_ADD:
+ case R_TILEGX_IMM8_Y0_TLS_ADD:
+ case R_TILEGX_IMM8_X1_TLS_ADD:
+ case R_TILEGX_IMM8_Y1_TLS_ADD:
+ tls_type = GOT_UNKNOWN;
+ if (h == NULL && local_got_offsets)
+ tls_type =
+ _bfd_tilegx_elf_local_got_tls_type (input_bfd) [r_symndx];
+ else if (h != NULL)
+ tls_type = tilegx_elf_hash_entry(h)->tls_type;
+
+ is_tls_iele = (! info->shared || tls_type == GOT_TLS_IE);
+ is_tls_le = is_tls_iele && (!input_section->sec_flg0
+ && !info->shared
+ && (h == NULL || h->dynindx == -1));
+
+ if (r_type == R_TILEGX_TLS_GD_CALL)
+ {
+ if (is_tls_le)
+ {
+ /* GD -> LE */
+ tilegx_replace_insn (contents + rel->r_offset,
+ insn_mask_X1, insn_move_X0X1);
+ continue;
+ }
+ else if (is_tls_iele)
+ {
+ /* GD -> IE */
+ if (ABI_64_P (output_bfd))
+ tilegx_replace_insn (contents + rel->r_offset,
+ insn_mask_X1, insn_tls_ie_ld_X1);
+ else
+ tilegx_replace_insn (contents + rel->r_offset,
+ insn_mask_X1, insn_tls_ie_ld4s_X1);
+ continue;
+ }
+
+ /* GD -> GD */
+ h = (struct elf_link_hash_entry *)
+ bfd_link_hash_lookup (info->hash, "__tls_get_addr", FALSE,
+ FALSE, TRUE);
+ BFD_ASSERT (h != NULL);
+ r_type = R_TILEGX_JUMPOFF_X1_PLT;
+ howto = tilegx_elf_howto_table + r_type;
+ }
+ else if (r_type == R_TILEGX_IMM8_X0_TLS_ADD
+ || r_type == R_TILEGX_IMM8_X1_TLS_ADD
+ || r_type == R_TILEGX_IMM8_Y0_TLS_ADD
+ || r_type == R_TILEGX_IMM8_Y1_TLS_ADD)
+ {
+ bfd_boolean is_pipe0 =
+ (r_type == R_TILEGX_IMM8_X0_TLS_ADD
+ || r_type == R_TILEGX_IMM8_Y0_TLS_ADD);
+ bfd_boolean is_X0X1 =
+ (r_type == R_TILEGX_IMM8_X0_TLS_ADD
+ || r_type == R_TILEGX_IMM8_X1_TLS_ADD);
+ int dest_begin = is_pipe0 ? 0 : 31;
+ int src_begin;
+ const bfd_byte *insn;
+ const bfd_byte *mask;
+
+ if (is_tls_le)
+ {
+ /* 1. copy dest operand into the first source operand.
+ 2. change the opcode to "move". */
+ src_begin = is_pipe0 ? 6 : 37;
+ insn = is_X0X1 ? insn_move_X0X1 : insn_move_Y0Y1;
+
+ switch (r_type)
+ {
+ case R_TILEGX_IMM8_X0_TLS_ADD:
+ mask = insn_mask_X0_no_dest_no_srca;
+ break;
+ case R_TILEGX_IMM8_X1_TLS_ADD:
+ mask = insn_mask_X1_no_dest_no_srca;
+ break;
+ case R_TILEGX_IMM8_Y0_TLS_ADD:
+ mask = insn_mask_Y0_no_dest_no_srca;
+ break;
+ case R_TILEGX_IMM8_Y1_TLS_ADD:
+ mask = insn_mask_Y1_no_dest_no_srca;
+ break;
+ }
+ }
+ else
+ {
+ /* 1. copy dest operand into the second source operand.
+ 2. change the opcode to "add". */
+ src_begin = is_pipe0 ? 12 : 43;
+ if (ABI_64_P (output_bfd))
+ insn = is_X0X1 ? insn_add_X0X1 : insn_add_Y0Y1;
+ else
+ insn = is_X0X1 ? insn_addx_X0X1 : insn_addx_Y0Y1;
+
+ switch (r_type)
+ {
+ case R_TILEGX_IMM8_X0_TLS_ADD:
+ mask = insn_mask_X0_no_operand;
+ break;
+ case R_TILEGX_IMM8_X1_TLS_ADD:
+ mask = insn_mask_X1_no_operand;
+ break;
+ case R_TILEGX_IMM8_Y0_TLS_ADD:
+ mask = insn_mask_Y0_no_operand;
+ break;
+ case R_TILEGX_IMM8_Y1_TLS_ADD:
+ mask = insn_mask_Y1_no_operand;
+ break;
+ }
+ }
+
+ tilegx_copy_bits (contents + rel->r_offset, dest_begin,
+ src_begin, 6);
+ tilegx_replace_insn (contents + rel->r_offset, mask, insn);
+
+ continue;
+ }
+ else
+ {
+ const bfd_byte *mask = NULL;
+ const bfd_byte *add_insn = NULL;
+ bfd_boolean is_64bit = ABI_64_P (output_bfd);
+
+ switch (r_type)
+ {
+ case R_TILEGX_IMM8_X0_TLS_GD_ADD:
+ add_insn = is_tls_iele
+ ? (is_64bit ? insn_tls_ie_add_X0X1 : insn_tls_ie_addx_X0X1)
+ : insn_tls_gd_add_X0X1;
+ mask = insn_mask_X0_no_dest_no_srca;
+ break;
+ case R_TILEGX_IMM8_X1_TLS_GD_ADD:
+ add_insn = is_tls_iele
+ ? (is_64bit ? insn_tls_ie_add_X0X1 : insn_tls_ie_addx_X0X1)
+ : insn_tls_gd_add_X0X1;
+ mask = insn_mask_X1_no_dest_no_srca;
+ break;
+ case R_TILEGX_IMM8_Y0_TLS_GD_ADD:
+ add_insn = is_tls_iele
+ ? (is_64bit ? insn_tls_ie_add_Y0Y1 : insn_tls_ie_addx_Y0Y1)
+ : insn_tls_gd_add_Y0Y1;
+ mask = insn_mask_Y0_no_dest_no_srca;
+ break;
+ case R_TILEGX_IMM8_Y1_TLS_GD_ADD:
+ add_insn = is_tls_iele
+ ? (is_64bit ? insn_tls_ie_add_Y0Y1 : insn_tls_ie_addx_Y0Y1)
+ : insn_tls_gd_add_Y0Y1;
+ mask = insn_mask_Y1_no_dest_no_srca;
+ break;
+ }
+
+ tilegx_replace_insn (contents + rel->r_offset, mask, add_insn);
+
+ continue;
+ }
+ break;
+ case R_TILEGX_TLS_IE_LOAD:
+ if (!input_section->sec_flg0
+ && !info->shared
+ && (h == NULL || h->dynindx == -1))
+ {
+ /* IE -> LE */
+ tilegx_replace_insn (contents + rel->r_offset,
+ insn_mask_X1_no_dest_no_srca,
+ insn_move_X0X1);
+ }
+ else
+ {
+ /* IE -> IE */
+ if (ABI_64_P (output_bfd))
+ tilegx_replace_insn (contents + rel->r_offset,
+ insn_mask_X1_no_dest_no_srca,
+ insn_tls_ie_ld_X1);
+ else
+ tilegx_replace_insn (contents + rel->r_offset,
+ insn_mask_X1_no_dest_no_srca,
+ insn_tls_ie_ld4s_X1);
+ }
+ continue;
+ break;
+ default:
+ break;
+ }
+
+ switch (r_type)
+ {
case R_TILEGX_IMM16_X0_HW0_GOT:
case R_TILEGX_IMM16_X1_HW0_GOT:
- case R_TILEGX_IMM16_X0_HW1_GOT:
- case R_TILEGX_IMM16_X1_HW1_GOT:
- case R_TILEGX_IMM16_X0_HW2_GOT:
- case R_TILEGX_IMM16_X1_HW2_GOT:
- case R_TILEGX_IMM16_X0_HW3_GOT:
- case R_TILEGX_IMM16_X1_HW3_GOT:
case R_TILEGX_IMM16_X0_HW0_LAST_GOT:
case R_TILEGX_IMM16_X1_HW0_LAST_GOT:
case R_TILEGX_IMM16_X0_HW1_LAST_GOT:
case R_TILEGX_IMM16_X1_HW1_LAST_GOT:
- case R_TILEGX_IMM16_X0_HW2_LAST_GOT:
- case R_TILEGX_IMM16_X1_HW2_LAST_GOT:
/* Relocation is to the entry for this symbol in the global
offset table. */
if (htab->elf.sgot == NULL)
@@ -3248,92 +3670,83 @@ tilegx_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
}
break;
+ case R_TILEGX_IMM16_X0_HW0_TLS_LE:
+ case R_TILEGX_IMM16_X1_HW0_TLS_LE:
+ case R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE:
+ case R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE:
+ case R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE:
+ case R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE:
+ if (info->shared)
+ {
+ Elf_Internal_Rela outrel;
+ bfd_boolean skip;
+
+ BFD_ASSERT (sreloc != NULL);
+ skip = FALSE;
+ outrel.r_offset =
+ _bfd_elf_section_offset (output_bfd, info, input_section,
+ rel->r_offset);
+ if (outrel.r_offset == (bfd_vma) -1)
+ skip = TRUE;
+ else if (outrel.r_offset == (bfd_vma) -2)
+ skip = TRUE;
+ outrel.r_offset += (input_section->output_section->vma
+ + input_section->output_offset);
+ if (skip)
+ memset (&outrel, 0, sizeof outrel);
+ else
+ {
+ outrel.r_info = TILEGX_ELF_R_INFO (htab, NULL, 0, r_type);
+ outrel.r_addend = relocation - dtpoff_base (info)
+ + rel->r_addend;
+ }
+
+ tilegx_elf_append_rela (output_bfd, sreloc, &outrel);
+ continue;
+ }
+ relocation = tpoff (info, relocation);
+ break;
+
case R_TILEGX_IMM16_X0_HW0_TLS_GD:
case R_TILEGX_IMM16_X1_HW0_TLS_GD:
- case R_TILEGX_IMM16_X0_HW1_TLS_GD:
- case R_TILEGX_IMM16_X1_HW1_TLS_GD:
- case R_TILEGX_IMM16_X0_HW2_TLS_GD:
- case R_TILEGX_IMM16_X1_HW2_TLS_GD:
- case R_TILEGX_IMM16_X0_HW3_TLS_GD:
- case R_TILEGX_IMM16_X1_HW3_TLS_GD:
case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
- case R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD:
- case R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD:
- tls_type = GOT_TLS_GD;
- goto have_tls_reference;
-
case R_TILEGX_IMM16_X0_HW0_TLS_IE:
case R_TILEGX_IMM16_X1_HW0_TLS_IE:
- case R_TILEGX_IMM16_X0_HW1_TLS_IE:
- case R_TILEGX_IMM16_X1_HW1_TLS_IE:
- case R_TILEGX_IMM16_X0_HW2_TLS_IE:
- case R_TILEGX_IMM16_X1_HW2_TLS_IE:
- case R_TILEGX_IMM16_X0_HW3_TLS_IE:
- case R_TILEGX_IMM16_X1_HW3_TLS_IE:
case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
- case R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE:
- case R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE:
- tls_type = GOT_TLS_IE;
- /* Fall through. */
-
- have_tls_reference:
+ r_type = tilegx_elf_tls_transition (info, r_type, h == NULL,
+ input_section->sec_flg0);
+ tls_type = GOT_UNKNOWN;
if (h == NULL && local_got_offsets)
- tls_type = _bfd_tilegx_elf_local_got_tls_type (input_bfd) [r_symndx];
+ tls_type =
+ _bfd_tilegx_elf_local_got_tls_type (input_bfd) [r_symndx];
else if (h != NULL)
- tls_type = tilegx_elf_hash_entry(h)->tls_type;
+ {
+ tls_type = tilegx_elf_hash_entry(h)->tls_type;
+ if (!info->shared && h->dynindx == -1 && tls_type == GOT_TLS_IE)
+ r_type = (!input_section->sec_flg0
+ ? tilegx_tls_translate_to_le (r_type)
+ : tilegx_tls_translate_to_ie (r_type));
+ }
if (tls_type == GOT_TLS_IE)
- switch (r_type)
- {
- case R_TILEGX_IMM16_X0_HW0_TLS_GD:
- r_type = R_TILEGX_IMM16_X0_HW0_TLS_IE;
- break;
- case R_TILEGX_IMM16_X1_HW0_TLS_GD:
- r_type = R_TILEGX_IMM16_X1_HW0_TLS_IE;
- break;
- case R_TILEGX_IMM16_X0_HW1_TLS_GD:
- r_type = R_TILEGX_IMM16_X0_HW1_TLS_IE;
- break;
- case R_TILEGX_IMM16_X1_HW1_TLS_GD:
- r_type = R_TILEGX_IMM16_X1_HW1_TLS_IE;
- break;
- case R_TILEGX_IMM16_X0_HW2_TLS_GD:
- r_type = R_TILEGX_IMM16_X0_HW2_TLS_IE;
- break;
- case R_TILEGX_IMM16_X1_HW2_TLS_GD:
- r_type = R_TILEGX_IMM16_X1_HW2_TLS_IE;
- break;
- case R_TILEGX_IMM16_X0_HW3_TLS_GD:
- r_type = R_TILEGX_IMM16_X0_HW3_TLS_IE;
- break;
- case R_TILEGX_IMM16_X1_HW3_TLS_GD:
- r_type = R_TILEGX_IMM16_X1_HW3_TLS_IE;
- break;
- case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
- r_type = R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE;
- break;
- case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
- r_type = R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE;
- break;
- case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
- r_type = R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE;
- break;
- case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
- r_type = R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE;
- break;
- case R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD:
- r_type = R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE;
- break;
- case R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD:
- r_type = R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE;
- break;
- }
+ r_type = tilegx_tls_translate_to_ie (r_type);
+
+ if (r_type == R_TILEGX_IMM16_X0_HW0_TLS_LE
+ || r_type == R_TILEGX_IMM16_X1_HW0_TLS_LE
+ || r_type == R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE
+ || r_type == R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE
+ || r_type == R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE
+ || r_type == R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE)
+ {
+ relocation = tpoff (info, relocation);
+ break;
+ }
if (h != NULL)
{
@@ -3386,18 +3799,10 @@ tilegx_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
{
case R_TILEGX_IMM16_X0_HW0_TLS_IE:
case R_TILEGX_IMM16_X1_HW0_TLS_IE:
- case R_TILEGX_IMM16_X0_HW1_TLS_IE:
- case R_TILEGX_IMM16_X1_HW1_TLS_IE:
- case R_TILEGX_IMM16_X0_HW2_TLS_IE:
- case R_TILEGX_IMM16_X1_HW2_TLS_IE:
- case R_TILEGX_IMM16_X0_HW3_TLS_IE:
- case R_TILEGX_IMM16_X1_HW3_TLS_IE:
case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
- case R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE:
- case R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE:
if (need_relocs) {
TILEGX_ELF_PUT_WORD (htab, output_bfd, 0,
htab->elf.sgot->contents + off);
@@ -3418,18 +3823,10 @@ tilegx_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
case R_TILEGX_IMM16_X0_HW0_TLS_GD:
case R_TILEGX_IMM16_X1_HW0_TLS_GD:
- case R_TILEGX_IMM16_X0_HW1_TLS_GD:
- case R_TILEGX_IMM16_X1_HW1_TLS_GD:
- case R_TILEGX_IMM16_X0_HW2_TLS_GD:
- case R_TILEGX_IMM16_X1_HW2_TLS_GD:
- case R_TILEGX_IMM16_X0_HW3_TLS_GD:
- case R_TILEGX_IMM16_X1_HW3_TLS_GD:
case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
- case R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD:
- case R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD:
if (need_relocs) {
outrel.r_offset = (htab->elf.sgot->output_section->vma
+ htab->elf.sgot->output_offset + off);
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 62f128f68e..78860ffe5c 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -2406,6 +2406,12 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_TILEPRO_SHAMT_X1",
"BFD_RELOC_TILEPRO_SHAMT_Y0",
"BFD_RELOC_TILEPRO_SHAMT_Y1",
+ "BFD_RELOC_TILEPRO_TLS_GD_CALL",
+ "BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD",
+ "BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD",
+ "BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD",
+ "BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD",
+ "BFD_RELOC_TILEPRO_TLS_IE_LOAD",
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD",
"BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD",
"BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO",
@@ -2425,6 +2431,14 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_TILEPRO_TLS_DTPMOD32",
"BFD_RELOC_TILEPRO_TLS_DTPOFF32",
"BFD_RELOC_TILEPRO_TLS_TPOFF32",
+ "BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE",
+ "BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE",
+ "BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO",
+ "BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO",
+ "BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI",
+ "BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI",
+ "BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA",
+ "BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA",
"BFD_RELOC_TILEGX_HW0",
"BFD_RELOC_TILEGX_HW1",
"BFD_RELOC_TILEGX_HW2",
@@ -2482,52 +2496,44 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT",
- "BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT",
- "BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT",
- "BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT",
- "BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT",
- "BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT",
- "BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT",
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT",
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT",
- "BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT",
- "BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD",
- "BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD",
- "BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD",
- "BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD",
- "BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD",
- "BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD",
- "BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD",
+ "BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE",
+ "BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE",
+ "BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE",
+ "BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE",
+ "BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE",
+ "BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD",
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD",
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD",
- "BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD",
- "BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE",
- "BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE",
- "BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE",
- "BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE",
- "BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE",
- "BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE",
- "BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE",
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE",
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE",
- "BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE",
- "BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE",
"BFD_RELOC_TILEGX_TLS_DTPMOD64",
"BFD_RELOC_TILEGX_TLS_DTPOFF64",
"BFD_RELOC_TILEGX_TLS_TPOFF64",
"BFD_RELOC_TILEGX_TLS_DTPMOD32",
"BFD_RELOC_TILEGX_TLS_DTPOFF32",
"BFD_RELOC_TILEGX_TLS_TPOFF32",
+ "BFD_RELOC_TILEGX_TLS_GD_CALL",
+ "BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD",
+ "BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD",
+ "BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD",
+ "BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD",
+ "BFD_RELOC_TILEGX_TLS_IE_LOAD",
+ "BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD",
+ "BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD",
+ "BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD",
+ "BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD",
"BFD_RELOC_EPIPHANY_SIMM8",
"BFD_RELOC_EPIPHANY_SIMM24",
"BFD_RELOC_EPIPHANY_HIGH",
diff --git a/bfd/reloc.c b/bfd/reloc.c
index ac1ecb5bda..4e1958c636 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -5799,6 +5799,18 @@ ENUMX
ENUMX
BFD_RELOC_TILEPRO_SHAMT_Y1
ENUMX
+ BFD_RELOC_TILEPRO_TLS_GD_CALL
+ENUMX
+ BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD
+ENUMX
+ BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD
+ENUMX
+ BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD
+ENUMX
+ BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD
+ENUMX
+ BFD_RELOC_TILEPRO_TLS_IE_LOAD
+ENUMX
BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
ENUMX
BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
@@ -5836,6 +5848,22 @@ ENUMX
BFD_RELOC_TILEPRO_TLS_DTPOFF32
ENUMX
BFD_RELOC_TILEPRO_TLS_TPOFF32
+ENUMX
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE
+ENUMX
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE
+ENUMX
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO
+ENUMX
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO
+ENUMX
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI
+ENUMX
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI
+ENUMX
+ BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA
+ENUMX
+ BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA
ENUMDOC
Tilera TILEPro Relocations.
@@ -5954,18 +5982,6 @@ ENUMX
ENUMX
BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT
-ENUMX
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
ENUMX
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
@@ -5974,25 +5990,21 @@ ENUMX
ENUMX
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT
-ENUMX
BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
ENUMX
BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD
+ BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE
ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD
+ BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE
ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD
+ BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE
ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD
+ BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE
ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD
+ BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE
ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD
+ BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE
ENUMX
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
ENUMX
@@ -6002,26 +6014,10 @@ ENUMX
ENUMX
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD
-ENUMX
BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
ENUMX
BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE
-ENUMX
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
ENUMX
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
@@ -6030,10 +6026,6 @@ ENUMX
ENUMX
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
ENUMX
- BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE
-ENUMX
- BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE
-ENUMX
BFD_RELOC_TILEGX_TLS_DTPMOD64
ENUMX
BFD_RELOC_TILEGX_TLS_DTPOFF64
@@ -6045,6 +6037,26 @@ ENUMX
BFD_RELOC_TILEGX_TLS_DTPOFF32
ENUMX
BFD_RELOC_TILEGX_TLS_TPOFF32
+ENUMX
+ BFD_RELOC_TILEGX_TLS_GD_CALL
+ENUMX
+ BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD
+ENUMX
+ BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD
+ENUMX
+ BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD
+ENUMX
+ BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD
+ENUMX
+ BFD_RELOC_TILEGX_TLS_IE_LOAD
+ENUMX
+ BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD
+ENUMX
+ BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD
+ENUMX
+ BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD
+ENUMX
+ BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD
ENUMDOC
Tilera TILE-Gx Relocations.
diff --git a/gas/ChangeLog b/gas/ChangeLog
index b419ac06c4..5e5f50b36e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,42 @@
2012-02-25 Walter Lee <walt@tilera.com>
+ * tc-tilepro.c (O_tls_le): Define operator.
+ (O_tls_le_lo16): Ditto.
+ (O_tls_le_hi16): Ditto.
+ (O_tls_le_ha16): Ditto.
+ (O_tls_gd_call): Ditto.
+ (O_tls_gd_add): Ditto.
+ (O_tls_ie_load): Ditto.
+ (md_begin): Delete old operators; handle new operators.
+ (emit_tilepro_instruction): Ditto.
+ (md_apply_fix): Ditto.
+ * tc-tilegx.c (O_hw1_got): Delete operator.
+ (O_hw2_got): Ditto.
+ (O_hw3_got): Ditto.
+ (O_hw2_last_got): Ditto.
+ (O_hw1_tls_gd): Ditto.
+ (O_hw2_tls_gd): Ditto.
+ (O_hw3_tls_gd): Ditto.
+ (O_hw2_last_tls_gd): Ditto.
+ (O_hw1_tls_ie): Ditto.
+ (O_hw2_tls_ie): Ditto.
+ (O_hw3_tls_ie): Ditto.
+ (O_hw2_last_tls_ie): Ditto.
+ (O_hw0_tls_le): Define operator.
+ (O_hw0_last_tls_le): Ditto.
+ (O_hw1_last_tls_le): Ditto.
+ (O_tls_gd_call): Ditto.
+ (O_tls_gd_add): Ditto.
+ (O_tls_ie_load): Ditto.
+ (O_tls_add): Ditto.
+ (md_begin): Delete old operators; handle new operators.
+ (emit_tilegx_instruction): Ditto.
+ (md_apply_fix): Ditto.
+ * doc/c-tilegx.texi: Delete old operators; document new operators.
+ * doc/c-tilepro.texi: Ditto.
+
+2012-02-25 Walter Lee <walt@tilera.com>
+
* tc-tilepro.c (apply_special_operator): delete cases for
got and tls operators.
(md_apply_fix): Ditto.
diff --git a/gas/config/tc-tilegx.c b/gas/config/tc-tilegx.c
index 49bf093e90..eda36c0d18 100644
--- a/gas/config/tc-tilegx.c
+++ b/gas/config/tc-tilegx.c
@@ -157,27 +157,22 @@ md_show_usage (FILE *stream)
#define O_hw1_last O_md6
#define O_hw2_last O_md7
#define O_hw0_got O_md8
-#define O_hw1_got O_md9
-#define O_hw2_got O_md10
-#define O_hw3_got O_md11
-#define O_hw0_last_got O_md12
-#define O_hw1_last_got O_md13
-#define O_hw2_last_got O_md14
-#define O_plt O_md15
-#define O_hw0_tls_gd O_md16
-#define O_hw1_tls_gd O_md17
-#define O_hw2_tls_gd O_md18
-#define O_hw3_tls_gd O_md19
-#define O_hw0_last_tls_gd O_md20
-#define O_hw1_last_tls_gd O_md21
-#define O_hw2_last_tls_gd O_md22
-#define O_hw0_tls_ie O_md23
-#define O_hw1_tls_ie O_md24
-#define O_hw2_tls_ie O_md25
-#define O_hw3_tls_ie O_md26
-#define O_hw0_last_tls_ie O_md27
-#define O_hw1_last_tls_ie O_md28
-#define O_hw2_last_tls_ie O_md29
+#define O_hw0_last_got O_md9
+#define O_hw1_last_got O_md10
+#define O_plt O_md11
+#define O_hw0_tls_gd O_md12
+#define O_hw0_last_tls_gd O_md13
+#define O_hw1_last_tls_gd O_md14
+#define O_hw0_tls_ie O_md15
+#define O_hw0_last_tls_ie O_md16
+#define O_hw1_last_tls_ie O_md17
+#define O_hw0_tls_le O_md18
+#define O_hw0_last_tls_le O_md19
+#define O_hw1_last_tls_le O_md20
+#define O_tls_gd_call O_md21
+#define O_tls_gd_add O_md22
+#define O_tls_ie_load O_md23
+#define O_tls_add O_md24
static struct hash_control *special_operator_hash;
@@ -289,27 +284,22 @@ md_begin (void)
/* hw3_last is a convenience alias for the equivalent hw3. */
hash_insert (special_operator_hash, "hw3_last", (void*)O_hw3);
INSERT_SPECIAL_OP (hw0_got);
- INSERT_SPECIAL_OP (hw1_got);
- INSERT_SPECIAL_OP (hw2_got);
- INSERT_SPECIAL_OP (hw3_got);
INSERT_SPECIAL_OP (hw0_last_got);
INSERT_SPECIAL_OP (hw1_last_got);
- INSERT_SPECIAL_OP (hw2_last_got);
INSERT_SPECIAL_OP(plt);
INSERT_SPECIAL_OP (hw0_tls_gd);
- INSERT_SPECIAL_OP (hw1_tls_gd);
- INSERT_SPECIAL_OP (hw2_tls_gd);
- INSERT_SPECIAL_OP (hw3_tls_gd);
INSERT_SPECIAL_OP (hw0_last_tls_gd);
INSERT_SPECIAL_OP (hw1_last_tls_gd);
- INSERT_SPECIAL_OP (hw2_last_tls_gd);
INSERT_SPECIAL_OP (hw0_tls_ie);
- INSERT_SPECIAL_OP (hw1_tls_ie);
- INSERT_SPECIAL_OP (hw2_tls_ie);
- INSERT_SPECIAL_OP (hw3_tls_ie);
INSERT_SPECIAL_OP (hw0_last_tls_ie);
INSERT_SPECIAL_OP (hw1_last_tls_ie);
- INSERT_SPECIAL_OP (hw2_last_tls_ie);
+ INSERT_SPECIAL_OP (hw0_tls_le);
+ INSERT_SPECIAL_OP (hw0_last_tls_le);
+ INSERT_SPECIAL_OP (hw1_last_tls_le);
+ INSERT_SPECIAL_OP (tls_gd_call);
+ INSERT_SPECIAL_OP (tls_gd_add);
+ INSERT_SPECIAL_OP (tls_ie_load);
+ INSERT_SPECIAL_OP (tls_add);
#undef INSERT_SPECIAL_OP
/* Initialize op_hash hash table. */
@@ -566,21 +556,6 @@ emit_tilegx_instruction (tilegx_bundle_bits bits,
require_symbol = 1;
break;
- case O_hw1_got:
- HANDLE_OP16 (HW1_GOT);
- require_symbol = 1;
- break;
-
- case O_hw2_got:
- HANDLE_OP16 (HW2_GOT);
- require_symbol = 1;
- break;
-
- case O_hw3_got:
- HANDLE_OP16 (HW3_GOT);
- require_symbol = 1;
- break;
-
case O_hw0_last_got:
HANDLE_OP16 (HW0_LAST_GOT);
require_symbol = 1;
@@ -591,88 +566,132 @@ emit_tilegx_instruction (tilegx_bundle_bits bits,
require_symbol = 1;
break;
- case O_hw2_last_got:
- HANDLE_OP16 (HW2_LAST_GOT);
- require_symbol = 1;
- break;
-
case O_hw0_tls_gd:
HANDLE_OP16 (HW0_TLS_GD);
require_symbol = 1;
break;
- case O_hw1_tls_gd:
- HANDLE_OP16 (HW1_TLS_GD);
+ case O_hw0_last_tls_gd:
+ HANDLE_OP16 (HW0_LAST_TLS_GD);
require_symbol = 1;
break;
- case O_hw2_tls_gd:
- HANDLE_OP16 (HW2_TLS_GD);
+ case O_hw1_last_tls_gd:
+ HANDLE_OP16 (HW1_LAST_TLS_GD);
require_symbol = 1;
break;
- case O_hw3_tls_gd:
- HANDLE_OP16 (HW3_TLS_GD);
+ case O_hw0_tls_ie:
+ HANDLE_OP16 (HW0_TLS_IE);
require_symbol = 1;
break;
- case O_hw0_last_tls_gd:
- HANDLE_OP16 (HW0_LAST_TLS_GD);
+ case O_hw0_last_tls_ie:
+ HANDLE_OP16 (HW0_LAST_TLS_IE);
require_symbol = 1;
break;
- case O_hw1_last_tls_gd:
- HANDLE_OP16 (HW1_LAST_TLS_GD);
+ case O_hw1_last_tls_ie:
+ HANDLE_OP16 (HW1_LAST_TLS_IE);
require_symbol = 1;
break;
- case O_hw2_last_tls_gd:
- HANDLE_OP16 (HW2_LAST_TLS_GD);
+ case O_hw0_tls_le:
+ HANDLE_OP16 (HW0_TLS_LE);
require_symbol = 1;
break;
- case O_hw0_tls_ie:
- HANDLE_OP16 (HW0_TLS_IE);
+ case O_hw0_last_tls_le:
+ HANDLE_OP16 (HW0_LAST_TLS_LE);
require_symbol = 1;
break;
- case O_hw1_tls_ie:
- HANDLE_OP16 (HW1_TLS_IE);
+ case O_hw1_last_tls_le:
+ HANDLE_OP16 (HW1_LAST_TLS_LE);
require_symbol = 1;
break;
- case O_hw2_tls_ie:
- HANDLE_OP16 (HW2_TLS_IE);
- require_symbol = 1;
- break;
+#undef HANDLE_OP16
- case O_hw3_tls_ie:
- HANDLE_OP16 (HW3_TLS_IE);
+ case O_plt:
+ switch (reloc)
+ {
+ case BFD_RELOC_TILEGX_JUMPOFF_X1:
+ reloc = BFD_RELOC_TILEGX_JUMPOFF_X1_PLT;
+ break;
+ default:
+ die = 1;
+ break;
+ }
+ use_subexp = 1;
require_symbol = 1;
break;
- case O_hw0_last_tls_ie:
- HANDLE_OP16 (HW0_LAST_TLS_IE);
+ case O_tls_gd_call:
+ switch (reloc)
+ {
+ case BFD_RELOC_TILEGX_JUMPOFF_X1:
+ reloc = BFD_RELOC_TILEGX_TLS_GD_CALL;
+ break;
+ default:
+ die = 1;
+ break;
+ }
+ use_subexp = 1;
require_symbol = 1;
break;
- case O_hw1_last_tls_ie:
- HANDLE_OP16 (HW1_LAST_TLS_IE);
+ case O_tls_gd_add:
+ switch (reloc)
+ {
+ case BFD_RELOC_TILEGX_IMM8_X0:
+ reloc = BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD;
+ break;
+ case BFD_RELOC_TILEGX_IMM8_X1:
+ reloc = BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD;
+ break;
+ case BFD_RELOC_TILEGX_IMM8_Y0:
+ reloc = BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD;
+ break;
+ case BFD_RELOC_TILEGX_IMM8_Y1:
+ reloc = BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD;
+ break;
+ default:
+ die = 1;
+ break;
+ }
+ use_subexp = 1;
require_symbol = 1;
break;
- case O_hw2_last_tls_ie:
- HANDLE_OP16 (HW2_LAST_TLS_IE);
+ case O_tls_ie_load:
+ switch (reloc)
+ {
+ case BFD_RELOC_TILEGX_IMM8_X1:
+ reloc = BFD_RELOC_TILEGX_TLS_IE_LOAD;
+ break;
+ default:
+ die = 1;
+ break;
+ }
+ use_subexp = 1;
require_symbol = 1;
break;
-#undef HANDLE_OP16
-
- case O_plt:
+ case O_tls_add:
switch (reloc)
{
- case BFD_RELOC_TILEGX_JUMPOFF_X1:
- reloc = BFD_RELOC_TILEGX_JUMPOFF_X1_PLT;
+ case BFD_RELOC_TILEGX_IMM8_X0:
+ reloc = BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD;
+ break;
+ case BFD_RELOC_TILEGX_IMM8_X1:
+ reloc = BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD;
+ break;
+ case BFD_RELOC_TILEGX_IMM8_Y0:
+ reloc = BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD;
+ break;
+ case BFD_RELOC_TILEGX_IMM8_Y1:
+ reloc = BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD;
break;
default:
die = 1;
@@ -1486,34 +1505,34 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED)
#ifdef OBJ_ELF
switch (fixP->fx_r_type)
{
+ case BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD:
+ case BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD:
+ case BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD:
+ case BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD:
+ case BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD:
+ case BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD:
+ case BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD:
+ case BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD:
case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD:
case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD:
- case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:
- case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:
case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
- case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
- case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
- case BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD:
- case BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD:
- case BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE:
- case BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE:
case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
+ case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:
+ case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:
+ case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
+ case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
- case BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD:
- case BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD:
- case BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE:
- case BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE:
- case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD:
- case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD:
- case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE:
- case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE:
- case BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD:
- case BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD:
- case BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE:
- case BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE:
+ case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE:
+ case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE:
+ case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE:
+ case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE:
+ case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE:
+ case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE:
+ case BFD_RELOC_TILEGX_TLS_GD_CALL:
+ case BFD_RELOC_TILEGX_TLS_IE_LOAD:
case BFD_RELOC_TILEGX_TLS_DTPMOD64:
case BFD_RELOC_TILEGX_TLS_DTPOFF64:
case BFD_RELOC_TILEGX_TLS_TPOFF64:
diff --git a/gas/config/tc-tilepro.c b/gas/config/tc-tilepro.c
index 581028df44..0b378c2f19 100644
--- a/gas/config/tc-tilepro.c
+++ b/gas/config/tc-tilepro.c
@@ -103,14 +103,14 @@ md_show_usage (FILE *stream)
/* Extra expression types. */
-#define O_lo16 O_md1
-#define O_hi16 O_md2
-#define O_ha16 O_md3
-#define O_got O_md4
+#define O_lo16 O_md1
+#define O_hi16 O_md2
+#define O_ha16 O_md3
+#define O_got O_md4
#define O_got_lo16 O_md5
#define O_got_hi16 O_md6
#define O_got_ha16 O_md7
-#define O_plt O_md8
+#define O_plt O_md8
#define O_tls_gd O_md9
#define O_tls_gd_lo16 O_md10
#define O_tls_gd_hi16 O_md11
@@ -119,6 +119,13 @@ md_show_usage (FILE *stream)
#define O_tls_ie_lo16 O_md14
#define O_tls_ie_hi16 O_md15
#define O_tls_ie_ha16 O_md16
+#define O_tls_le O_md17
+#define O_tls_le_lo16 O_md18
+#define O_tls_le_hi16 O_md19
+#define O_tls_le_ha16 O_md20
+#define O_tls_gd_call O_md21
+#define O_tls_gd_add O_md22
+#define O_tls_ie_load O_md23
static struct hash_control *special_operator_hash;
@@ -230,6 +237,13 @@ md_begin (void)
INSERT_SPECIAL_OP(tls_ie_lo16);
INSERT_SPECIAL_OP(tls_ie_hi16);
INSERT_SPECIAL_OP(tls_ie_ha16);
+ INSERT_SPECIAL_OP(tls_le);
+ INSERT_SPECIAL_OP(tls_le_lo16);
+ INSERT_SPECIAL_OP(tls_le_hi16);
+ INSERT_SPECIAL_OP(tls_le_ha16);
+ INSERT_SPECIAL_OP(tls_gd_call);
+ INSERT_SPECIAL_OP(tls_gd_add);
+ INSERT_SPECIAL_OP(tls_ie_load);
#undef INSERT_SPECIAL_OP
/* Initialize op_hash hash table. */
@@ -516,6 +530,26 @@ emit_tilepro_instruction (tilepro_bundle_bits bits,
require_symbol = 1;
break;
+ case O_tls_le:
+ HANDLE_OP16 (TLS_LE);
+ require_symbol = 1;
+ break;
+
+ case O_tls_le_lo16:
+ HANDLE_OP16 (TLS_LE_LO);
+ require_symbol = 1;
+ break;
+
+ case O_tls_le_hi16:
+ HANDLE_OP16 (TLS_LE_HI);
+ require_symbol = 1;
+ break;
+
+ case O_tls_le_ha16:
+ HANDLE_OP16 (TLS_LE_HA);
+ require_symbol = 1;
+ break;
+
#undef HANDLE_OP16
case O_plt:
@@ -532,6 +566,57 @@ emit_tilepro_instruction (tilepro_bundle_bits bits,
require_symbol = 1;
break;
+ case O_tls_gd_call:
+ switch (reloc)
+ {
+ case BFD_RELOC_TILEPRO_JOFFLONG_X1:
+ reloc = BFD_RELOC_TILEPRO_TLS_GD_CALL;
+ break;
+ default:
+ die = 1;
+ break;
+ }
+ use_subexp = 1;
+ require_symbol = 1;
+ break;
+
+ case O_tls_gd_add:
+ switch (reloc)
+ {
+ case BFD_RELOC_TILEPRO_IMM8_X0:
+ reloc = BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD;
+ break;
+ case BFD_RELOC_TILEPRO_IMM8_X1:
+ reloc = BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD;
+ break;
+ case BFD_RELOC_TILEPRO_IMM8_Y0:
+ reloc = BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD;
+ break;
+ case BFD_RELOC_TILEPRO_IMM8_Y1:
+ reloc = BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD;
+ break;
+ default:
+ die = 1;
+ break;
+ }
+ use_subexp = 1;
+ require_symbol = 1;
+ break;
+
+ case O_tls_ie_load:
+ switch (reloc)
+ {
+ case BFD_RELOC_TILEPRO_IMM8_X1:
+ reloc = BFD_RELOC_TILEPRO_TLS_IE_LOAD;
+ break;
+ default:
+ die = 1;
+ break;
+ }
+ use_subexp = 1;
+ require_symbol = 1;
+ break;
+
default:
/* Do nothing. */
break;
@@ -1298,22 +1383,36 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED)
#ifdef OBJ_ELF
switch (fixP->fx_r_type)
{
+ case BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD:
+ case BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD:
+ case BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD:
+ case BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD:
case BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD:
case BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD:
- case BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE:
- case BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE:
case BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO:
case BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO:
- case BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO:
- case BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO:
case BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI:
case BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI:
- case BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI:
- case BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI:
case BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA:
case BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA:
+ case BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE:
+ case BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE:
+ case BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO:
+ case BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO:
+ case BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI:
+ case BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI:
case BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA:
case BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA:
+ case BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE:
+ case BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE:
+ case BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO:
+ case BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO:
+ case BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI:
+ case BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI:
+ case BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA:
+ case BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA:
+ case BFD_RELOC_TILEPRO_TLS_GD_CALL:
+ case BFD_RELOC_TILEPRO_TLS_IE_LOAD:
case BFD_RELOC_TILEPRO_TLS_DTPMOD32:
case BFD_RELOC_TILEPRO_TLS_DTPOFF32:
case BFD_RELOC_TILEPRO_TLS_TPOFF32:
diff --git a/gas/doc/c-tilegx.texi b/gas/doc/c-tilegx.texi
index c2f5bc1d6d..268cc4f7a5 100644
--- a/gas/doc/c-tilegx.texi
+++ b/gas/doc/c-tilegx.texi
@@ -218,21 +218,6 @@ shl16insli r0, r0, hw0(sym)
This modifier is used to load bits 0-15 of the symbol's offset in the
GOT entry corresponding to the symbol.
-@item hw1_got
-
-This modifier is used to load bits 16-31 of the symbol's offset in the
-GOT entry corresponding to the symbol.
-
-@item hw2_got
-
-This modifier is used to load bits 32-47 of the symbol's offset in the
-GOT entry corresponding to the symbol.
-
-@item hw3_got
-
-This modifier is used to load bits 48-63 of the symbol's offset in the
-GOT entry corresponding to the symbol.
-
@item hw0_last_got
This modifier yields the same value as @code{hw0_got}, but it also
@@ -240,13 +225,9 @@ checks that the value does not overflow.
@item hw1_last_got
-This modifier yields the same value as @code{hw1_got}, but it also
-checks that the value does not overflow.
-
-@item hw2_last_got
-
-This modifier yields the same value as @code{hw2_got}, but it also
-checks that the value does not overflow.
+This modifier is used to load bits 16-31 of the symbol's offset in the
+GOT entry corresponding to the symbol, and it also checks that the
+value does not overflow.
@item plt
@@ -267,24 +248,6 @@ This modifier is used to load bits 0-15 of the offset of the GOT entry
of the symbol's TLS descriptor, to be used for general-dynamic TLS
accesses.
-@item hw1_tls_gd
-
-This modifier is used to load bits 16-31 of the offset of the GOT
-entry of the symbol's TLS descriptor, to be used for general-dynamic
-TLS accesses.
-
-@item hw2_tls_gd
-
-This modifier is used to load bits 32-47 of the offset of the GOT
-entry of the symbol's TLS descriptor, to be used for general-dynamic
-TLS accesses.
-
-@item hw3_tls_gd
-
-This modifier is used to load bits 48-63 of the offset of the GOT
-entry of the symbol's TLS descriptor, to be used for general-dynamic
-TLS accesses.
-
@item hw0_last_tls_gd
This modifier yields the same value as @code{hw0_tls_gd}, but it also
@@ -292,13 +255,9 @@ checks that the value does not overflow.
@item hw1_last_tls_gd
-This modifier yields the same value as @code{hw1_tls_gd}, but it also
-checks that the value does not overflow.
-
-@item hw2_last_tls_gd
-
-This modifier yields the same value as @code{hw2_tls_gd}, but it also
-checks that the value does not overflow.
+This modifier is used to load bits 16-31 of the offset of the GOT
+entry of the symbol's TLS descriptor, to be used for general-dynamic
+TLS accesses. It also checks that the value does not overflow.
@item hw0_tls_ie
@@ -306,38 +265,48 @@ This modifier is used to load bits 0-15 of the offset of the GOT entry
containing the offset of the symbol's address from the TCB, to be used
for initial-exec TLS accesses.
-@item hw1_tls_ie
+@item hw0_last_tls_ie
+
+This modifier yields the same value as @code{hw0_tls_ie}, but it also
+checks that the value does not overflow.
+
+@item hw1_last_tls_ie
This modifier is used to load bits 16-31 of the offset of the GOT
entry containing the offset of the symbol's address from the TCB, to
-be used for initial-exec TLS accesses.
+be used for initial-exec TLS accesses. It also checks that the value
+does not overflow.
-@item hw2_tls_ie
+@item hw0_tls_le
-This modifier is used to load bits 32-47 of the offset of the GOT entry
-containing the offset of the symbol's address from the TCB, to be used
-for initial-exec TLS accesses.
+This modifier is used to load bits 0-15 of the offset of the symbol's
+address from the TCB, to be used for local-exec TLS accesses.
-@item hw3_tls_ie
+@item hw0_last_tls_le
-This modifier is used to load bits 48-63 of the offset of the GOT
-entry containing the offset of the symbol's address from the TCB, to
-be used for initial-exec TLS accesses.
+This modifier yields the same value as @code{hw0_tls_le}, but it also
+checks that the value does not overflow.
-@item hw0_last_tls_ie
+@item hw1_last_tls_le
-This modifier yields the same value as @code{hw0_tls_ie}, but it also
-checks that the value does not overflow.
+This modifier is used to load bits 16-31 of the offset of the symbol's
+address from the TCB, to be used for local-exec TLS accesses. It
+also checks that the value does not overflow.
-@item hw1_last_tls_ie
+@item tls_gd_call
-This modifier yields the same value as @code{hw1_tls_ie}, but it also
-checks that the value does not overflow.
+This modifier is used to tag an instrution as the ``call'' part of a
+calling sequence for a TLS GD reference of its operand.
-@item hw2_last_tls_ie
+@item tls_gd_add
-This modifier yields the same value as @code{hw2_tls_ie}, but it also
-checks that the value does not overflow.
+This modifier is used to tag an instruction as the ``add'' part of a
+calling sequence for a TLS GD reference of its operand.
+
+@item tls_ie_load
+
+This modifier is used to tag an instruction as the ``load'' part of a
+calling sequence for a TLS IE reference of its operand.
@end table
diff --git a/gas/doc/c-tilepro.texi b/gas/doc/c-tilepro.texi
index bbccdfbb68..5d80c4f05c 100644
--- a/gas/doc/c-tilepro.texi
+++ b/gas/doc/c-tilepro.texi
@@ -261,6 +261,41 @@ to be used for initial-exec TLS accesses.
This modifier is like @code{tls_ie_hi16}, but it adds one to the value
if @code{tls_ie_lo16} of the input value is negative.
+@item tls_le
+
+This modifier is used to load the offset of the symbol's address from
+the TCB, to be used for local-exec TLS accesses.
+
+@item tls_le_lo16
+
+This modifier is used to load the low 16 bits of the offset of the
+symbol's address from the TCB, to be used for local-exec TLS accesses.
+
+@item tls_le_hi16
+
+This modifier is used to load the high 16 bits of the offset of the
+symbol's address from the TCB, to be used for local-exec TLS accesses.
+
+@item tls_le_ha16
+
+This modifier is like @code{tls_le_hi16}, but it adds one to the value
+if @code{tls_le_lo16} of the input value is negative.
+
+@item tls_gd_call
+
+This modifier is used to tag an instrution as the ``call'' part of a
+calling sequence for a TLS GD reference of its operand.
+
+@item tls_gd_add
+
+This modifier is used to tag an instruction as the ``add'' part of a
+calling sequence for a TLS GD reference of its operand.
+
+@item tls_ie_load
+
+This modifier is used to tag an instruction as the ``load'' part of a
+calling sequence for a TLS IE reference of its operand.
+
@end table
@node TILEPro Directives
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index 86179bf788..1535dfb339 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,60 @@
+2012-02-25 Walter Lee <walt@tilera.com>
+
+ * tilegx.h (R_TILEGX_IMM16_X0_HW1_GOT): Delete.
+ (R_TILEGX_IMM16_X1_HW1_GOT): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_GOT): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_GOT): Ditto.
+ (R_TILEGX_IMM16_X0_HW3_GOT): Ditto.
+ (R_TILEGX_IMM16_X1_HW3_GOT): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_LAST_GOT): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_LAST_GOT): Ditto.
+ (R_TILEGX_IMM16_X0_HW1_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X1_HW1_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X0_HW3_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X1_HW3_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD): Ditto.
+ (R_TILEGX_IMM16_X0_HW1_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X1_HW1_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X0_HW3_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X1_HW3_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE): Ditto.
+ (R_TILEGX_IMM16_X0_HW0_TLS_LE): New relocation.
+ (R_TILEGX_IMM16_X1_HW0_TLS_LE): Ditto.
+ (R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE): Ditto.
+ (R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE): Ditto.
+ (R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE): Ditto.
+ (R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE): Ditto.
+ (R_TILEGX_TLS_GD_CALL): Ditto.
+ (R_TILEGX_IMM8_X0_TLS_GD_ADD): Ditto.
+ (R_TILEGX_IMM8_X1_TLS_GD_ADD): Ditto.
+ (R_TILEGX_IMM8_Y0_TLS_GD_ADD): Ditto.
+ (R_TILEGX_IMM8_Y1_TLS_GD_ADD): Ditto.
+ (R_TILEGX_TLS_IE_LOAD): Ditto.
+ (R_TILEGX_IMM8_X0_TLS_ADD): Ditto.
+ (R_TILEGX_IMM8_X1_TLS_ADD): Ditto.
+ (R_TILEGX_IMM8_Y0_TLS_ADD): Ditto.
+ (R_TILEGX_IMM8_Y1_TLS_ADD): Ditto.
+ * tilepro.h (R_TILEPRO_TLS_GD_CALL): New relocation.
+ (R_TILEPRO_IMM8_X0_TLS_GD_ADD): Ditto.
+ (R_TILEPRO_IMM8_X1_TLS_GD_ADD): Ditto.
+ (R_TILEPRO_IMM8_Y0_TLS_GD_ADD): Ditto.
+ (R_TILEPRO_IMM8_Y1_TLS_GD_ADD): Ditto.
+ (R_TILEPRO_TLS_IE_LOAD): Ditto.
+ (R_TILEPRO_IMM16_X0_TLS_LE): Ditto.
+ (R_TILEPRO_IMM16_X1_TLS_LE): Ditto.
+ (R_TILEPRO_IMM16_X0_TLS_LE_LO): Ditto.
+ (R_TILEPRO_IMM16_X1_TLS_LE_LO): Ditto.
+ (R_TILEPRO_IMM16_X0_TLS_LE_HI): Ditto.
+ (R_TILEPRO_IMM16_X1_TLS_LE_HI): Ditto.
+ (R_TILEPRO_IMM16_X0_TLS_LE_HA): Ditto.
+ (R_TILEPRO_IMM16_X1_TLS_LE_HA): Ditto.
+
2011-12-22 DJ Delorie <dj@redhat.com>
* rl78.h (R_RL78_RH_RELAX, R_RL78_RH_SFR, R_RL78_RH_SADDR): New.
diff --git a/include/elf/tilegx.h b/include/elf/tilegx.h
index d276f2e5fe..004ce28caa 100644
--- a/include/elf/tilegx.h
+++ b/include/elf/tilegx.h
@@ -104,48 +104,37 @@ START_RELOC_NUMBERS (elf_tilegx_reloc_type)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_GOT, 64)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_GOT, 65)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_GOT, 66)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_GOT, 67)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_GOT, 68)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_GOT, 69)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_GOT, 70)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_GOT, 71)
+ /* Relocs 66-71 are currently not defined. */
+
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_GOT, 72)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_GOT, 73)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_GOT, 74)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_GOT, 75)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_GOT, 76)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_GOT, 77)
+ /* Relocs 76-77 are currently not defined. */
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_GD, 78)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_GD, 79)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_TLS_GD, 80)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_TLS_GD, 81)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_TLS_GD, 82)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_TLS_GD, 83)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_TLS_GD, 84)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_TLS_GD, 85)
+ RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_LE, 80)
+ RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_LE, 81)
+ RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE, 82)
+ RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE, 83)
+ RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE, 84)
+ RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE, 85)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD, 86)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD, 87)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD, 88)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD, 89)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD, 90)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD, 91)
+ /* Relocs 90-91 are currently not defined. */
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_IE, 92)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_IE, 93)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_TLS_IE, 94)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_TLS_IE, 95)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_TLS_IE, 96)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_TLS_IE, 97)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_TLS_IE, 98)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_TLS_IE, 99)
+ /* Relocs 94-99 are currently not defined. */
+
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE, 100)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE, 101)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE, 102)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE, 103)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE, 104)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE, 105)
+ /* Relocs 104-105 are currently not defined. */
RELOC_NUMBER (R_TILEGX_TLS_DTPMOD64, 106)
RELOC_NUMBER (R_TILEGX_TLS_DTPOFF64, 107)
@@ -154,6 +143,17 @@ START_RELOC_NUMBERS (elf_tilegx_reloc_type)
RELOC_NUMBER (R_TILEGX_TLS_DTPOFF32, 110)
RELOC_NUMBER (R_TILEGX_TLS_TPOFF32, 111)
+ RELOC_NUMBER (R_TILEGX_TLS_GD_CALL, 112)
+ RELOC_NUMBER (R_TILEGX_IMM8_X0_TLS_GD_ADD, 113)
+ RELOC_NUMBER (R_TILEGX_IMM8_X1_TLS_GD_ADD, 114)
+ RELOC_NUMBER (R_TILEGX_IMM8_Y0_TLS_GD_ADD, 115)
+ RELOC_NUMBER (R_TILEGX_IMM8_Y1_TLS_GD_ADD, 116)
+ RELOC_NUMBER (R_TILEGX_TLS_IE_LOAD, 117)
+ RELOC_NUMBER (R_TILEGX_IMM8_X0_TLS_ADD, 118)
+ RELOC_NUMBER (R_TILEGX_IMM8_X1_TLS_ADD, 119)
+ RELOC_NUMBER (R_TILEGX_IMM8_Y0_TLS_ADD, 120)
+ RELOC_NUMBER (R_TILEGX_IMM8_Y1_TLS_ADD, 121)
+
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_TILEGX_GNU_VTINHERIT, 128)
RELOC_NUMBER (R_TILEGX_GNU_VTENTRY, 129)
diff --git a/include/elf/tilepro.h b/include/elf/tilepro.h
index 899697f605..0079a2fe4a 100644
--- a/include/elf/tilepro.h
+++ b/include/elf/tilepro.h
@@ -96,7 +96,14 @@ START_RELOC_NUMBERS (elf_tilepro_reloc_type)
RELOC_NUMBER (R_TILEPRO_DEST_IMM8_X1, 55)
- /* Relocs 56-65 are currently not defined. */
+ /* Relocs 56-59 are currently not defined. */
+
+ RELOC_NUMBER (R_TILEPRO_TLS_GD_CALL, 60)
+ RELOC_NUMBER (R_TILEPRO_IMM8_X0_TLS_GD_ADD, 61)
+ RELOC_NUMBER (R_TILEPRO_IMM8_X1_TLS_GD_ADD, 62)
+ RELOC_NUMBER (R_TILEPRO_IMM8_Y0_TLS_GD_ADD, 63)
+ RELOC_NUMBER (R_TILEPRO_IMM8_Y1_TLS_GD_ADD, 64)
+ RELOC_NUMBER (R_TILEPRO_TLS_IE_LOAD, 65)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD, 66)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD, 67)
@@ -120,6 +127,15 @@ START_RELOC_NUMBERS (elf_tilepro_reloc_type)
RELOC_NUMBER (R_TILEPRO_TLS_DTPOFF32, 83)
RELOC_NUMBER (R_TILEPRO_TLS_TPOFF32, 84)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE, 85)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE, 86)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_LO, 87)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_LO, 88)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HI, 89)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HI, 90)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HA, 91)
+ RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HA, 92)
+
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_TILEPRO_GNU_VTINHERIT, 128)
RELOC_NUMBER (R_TILEPRO_GNU_VTENTRY, 129)
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index 7e2c14ea67..5241b37312 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,10 @@
+2012-02-25 Walter Lee <walt@tilera.com>
+
+ * tilegx.h (tilegx_mnemonic): Add TILEGX_OPC_LD4S_TLS,
+ TILEGX_OPC_LD_TLS.
+ * tilepro.h (tilepro_mnemonic): Add TILEPRO_OPC_LW_TLS,
+ TILEPRO_OPC_LW_TLS_SN.
+
2012-02-08 H.J. Lu <hongjiu.lu@intel.com>
* i386.h (XACQUIRE_PREFIX_OPCODE): New.
diff --git a/include/opcode/tilegx.h b/include/opcode/tilegx.h
index 95a9ca7d29..c11fc16615 100644
--- a/include/opcode/tilegx.h
+++ b/include/opcode/tilegx.h
@@ -34,6 +34,8 @@ typedef enum
TILEGX_OPC_BPT,
TILEGX_OPC_INFO,
TILEGX_OPC_INFOL,
+ TILEGX_OPC_LD4S_TLS,
+ TILEGX_OPC_LD_TLS,
TILEGX_OPC_MOVE,
TILEGX_OPC_MOVEI,
TILEGX_OPC_MOVELI,
diff --git a/include/opcode/tilepro.h b/include/opcode/tilepro.h
index 91e2a2bdb2..767926bdaf 100644
--- a/include/opcode/tilepro.h
+++ b/include/opcode/tilepro.h
@@ -36,6 +36,8 @@ typedef enum
TILEPRO_OPC_INFOL,
TILEPRO_OPC_J,
TILEPRO_OPC_JAL,
+ TILEPRO_OPC_LW_TLS,
+ TILEPRO_OPC_LW_TLS_SN,
TILEPRO_OPC_MOVE,
TILEPRO_OPC_MOVE_SN,
TILEPRO_OPC_MOVEI,
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index b3f5c76101..70d5f34543 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2012-02-25 Walter Lee <walt@tilera.com>
+
+ * tilegx-opc.c: Handle TILEGX_OPC_LD4S_TLS and TILEGX_OPC_LD_TLS.
+ * tilepro-opc.c: Handle TILEPRO_OPC_LW_TLS and
+ TILEPRO_OPC_LW_TLS_SN.
+
2012-02-21 H.J. Lu <hongjiu.lu@intel.com>
* i386-opc.h (HLEPrefixNone): New.
diff --git a/opcodes/tilegx-opc.c b/opcodes/tilegx-opc.c
index 4f97019337..682dd1b1aa 100644
--- a/opcodes/tilegx-opc.c
+++ b/opcodes/tilegx-opc.c
@@ -41,7 +41,7 @@
#include <stddef.h>
#endif
-const struct tilegx_opcode tilegx_opcodes[334] =
+const struct tilegx_opcode tilegx_opcodes[336] =
{
{ "bpt", TILEGX_OPC_BPT, 0x2, 0, TREG_ZERO, 0,
{ { 0, }, { }, { 0, }, { 0, }, { 0, } },
@@ -100,8 +100,46 @@ const struct tilegx_opcode tilegx_opcodes[334] =
}
#endif
},
+ { "ld4s_tls", TILEGX_OPC_LD4S_TLS, 0x2, 3, TREG_ZERO, 1,
+ { { 0, }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
+#ifndef DISASM_ONLY
+ {
+ 0ULL,
+ 0xfffff80000000000ULL,
+ 0ULL,
+ 0ULL,
+ 0ULL
+ },
+ {
+ -1ULL,
+ 0x1858000000000000ULL,
+ -1ULL,
+ -1ULL,
+ -1ULL
+ }
+#endif
+ },
+ { "ld_tls", TILEGX_OPC_LD_TLS, 0x2, 3, TREG_ZERO, 1,
+ { { 0, }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
+#ifndef DISASM_ONLY
+ {
+ 0ULL,
+ 0xfffff80000000000ULL,
+ 0ULL,
+ 0ULL,
+ 0ULL
+ },
+ {
+ -1ULL,
+ 0x18a0000000000000ULL,
+ -1ULL,
+ -1ULL,
+ -1ULL
+ }
+#endif
+ },
{ "move", TILEGX_OPC_MOVE, 0xf, 2, TREG_ZERO, 1,
- { { 6, 7 }, { 8, 9 }, { 10, 11 }, { 12, 13 }, { 0, } },
+ { { 8, 9 }, { 6, 7 }, { 10, 11 }, { 12, 13 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -120,7 +158,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "movei", TILEGX_OPC_MOVEI, 0xf, 2, TREG_ZERO, 1,
- { { 6, 0 }, { 8, 1 }, { 10, 2 }, { 12, 3 }, { 0, } },
+ { { 8, 0 }, { 6, 1 }, { 10, 2 }, { 12, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00fc0ULL,
@@ -139,7 +177,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "moveli", TILEGX_OPC_MOVELI, 0x3, 2, TREG_ZERO, 1,
- { { 6, 4 }, { 8, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 4 }, { 6, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc000000070000fc0ULL,
@@ -158,7 +196,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "prefetch", TILEGX_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -291,7 +329,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "prefetch_l1", TILEGX_OPC_PREFETCH_L1, 0x12, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -310,7 +348,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "prefetch_l1_fault", TILEGX_OPC_PREFETCH_L1_FAULT, 0x12, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -329,7 +367,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "prefetch_l2", TILEGX_OPC_PREFETCH_L2, 0x12, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -348,7 +386,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "prefetch_l2_fault", TILEGX_OPC_PREFETCH_L2_FAULT, 0x12, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -367,7 +405,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "prefetch_l3", TILEGX_OPC_PREFETCH_L3, 0x12, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -386,7 +424,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "prefetch_l3_fault", TILEGX_OPC_PREFETCH_L3_FAULT, 0x12, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -424,7 +462,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "add", TILEGX_OPC_ADD, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -443,7 +481,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "addi", TILEGX_OPC_ADDI, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -462,7 +500,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "addli", TILEGX_OPC_ADDLI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 4 }, { 8, 9, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc000000070000000ULL,
@@ -481,7 +519,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "addx", TILEGX_OPC_ADDX, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -500,7 +538,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "addxi", TILEGX_OPC_ADDXI, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -519,7 +557,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "addxli", TILEGX_OPC_ADDXLI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 4 }, { 8, 9, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc000000070000000ULL,
@@ -538,7 +576,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "addxsc", TILEGX_OPC_ADDXSC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -557,7 +595,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "and", TILEGX_OPC_AND, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -576,7 +614,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "andi", TILEGX_OPC_ANDI, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -595,7 +633,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "beqz", TILEGX_OPC_BEQZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -614,7 +652,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "beqzt", TILEGX_OPC_BEQZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -633,7 +671,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bfexts", TILEGX_OPC_BFEXTS, 0x1, 4, TREG_ZERO, 1,
- { { 6, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007f000000ULL,
@@ -652,7 +690,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bfextu", TILEGX_OPC_BFEXTU, 0x1, 4, TREG_ZERO, 1,
- { { 6, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007f000000ULL,
@@ -671,7 +709,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bfins", TILEGX_OPC_BFINS, 0x1, 4, TREG_ZERO, 1,
- { { 23, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007f000000ULL,
@@ -690,7 +728,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bgez", TILEGX_OPC_BGEZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -709,7 +747,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bgezt", TILEGX_OPC_BGEZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -728,7 +766,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bgtz", TILEGX_OPC_BGTZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -747,7 +785,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bgtzt", TILEGX_OPC_BGTZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -766,7 +804,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "blbc", TILEGX_OPC_BLBC, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -785,7 +823,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "blbct", TILEGX_OPC_BLBCT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -804,7 +842,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "blbs", TILEGX_OPC_BLBS, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -823,7 +861,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "blbst", TILEGX_OPC_BLBST, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -842,7 +880,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "blez", TILEGX_OPC_BLEZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -861,7 +899,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "blezt", TILEGX_OPC_BLEZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -880,7 +918,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bltz", TILEGX_OPC_BLTZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -899,7 +937,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bltzt", TILEGX_OPC_BLTZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -918,7 +956,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bnez", TILEGX_OPC_BNEZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -937,7 +975,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "bnezt", TILEGX_OPC_BNEZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -956,7 +994,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "clz", TILEGX_OPC_CLZ, 0x5, 2, TREG_ZERO, 1,
- { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
+ { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -975,7 +1013,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmoveqz", TILEGX_OPC_CMOVEQZ, 0x5, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -994,7 +1032,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmovnez", TILEGX_OPC_CMOVNEZ, 0x5, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1013,7 +1051,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmpeq", TILEGX_OPC_CMPEQ, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1032,7 +1070,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmpeqi", TILEGX_OPC_CMPEQI, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -1051,7 +1089,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmpexch", TILEGX_OPC_CMPEXCH, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1070,7 +1108,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmpexch4", TILEGX_OPC_CMPEXCH4, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1089,7 +1127,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmples", TILEGX_OPC_CMPLES, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1108,7 +1146,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmpleu", TILEGX_OPC_CMPLEU, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1127,7 +1165,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmplts", TILEGX_OPC_CMPLTS, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1146,7 +1184,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmpltsi", TILEGX_OPC_CMPLTSI, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -1165,7 +1203,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmpltu", TILEGX_OPC_CMPLTU, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1184,7 +1222,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmpltui", TILEGX_OPC_CMPLTUI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -1203,7 +1241,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmpne", TILEGX_OPC_CMPNE, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1222,7 +1260,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmul", TILEGX_OPC_CMUL, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1241,7 +1279,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmula", TILEGX_OPC_CMULA, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1260,7 +1298,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmulaf", TILEGX_OPC_CMULAF, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1279,7 +1317,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmulf", TILEGX_OPC_CMULF, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1298,7 +1336,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmulfr", TILEGX_OPC_CMULFR, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1317,7 +1355,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmulh", TILEGX_OPC_CMULH, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1336,7 +1374,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "cmulhr", TILEGX_OPC_CMULHR, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1355,7 +1393,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "crc32_32", TILEGX_OPC_CRC32_32, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1374,7 +1412,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "crc32_8", TILEGX_OPC_CRC32_8, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1393,7 +1431,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ctz", TILEGX_OPC_CTZ, 0x5, 2, TREG_ZERO, 1,
- { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
+ { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -1412,7 +1450,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "dblalign", TILEGX_OPC_DBLALIGN, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1431,7 +1469,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "dblalign2", TILEGX_OPC_DBLALIGN2, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1450,7 +1488,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "dblalign4", TILEGX_OPC_DBLALIGN4, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1469,7 +1507,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "dblalign6", TILEGX_OPC_DBLALIGN6, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1507,7 +1545,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "dtlbpr", TILEGX_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1526,7 +1564,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "exch", TILEGX_OPC_EXCH, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1545,7 +1583,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "exch4", TILEGX_OPC_EXCH4, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1564,7 +1602,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fdouble_add_flags", TILEGX_OPC_FDOUBLE_ADD_FLAGS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1583,7 +1621,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fdouble_addsub", TILEGX_OPC_FDOUBLE_ADDSUB, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1602,7 +1640,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fdouble_mul_flags", TILEGX_OPC_FDOUBLE_MUL_FLAGS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1621,7 +1659,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fdouble_pack1", TILEGX_OPC_FDOUBLE_PACK1, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1640,7 +1678,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fdouble_pack2", TILEGX_OPC_FDOUBLE_PACK2, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1659,7 +1697,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fdouble_sub_flags", TILEGX_OPC_FDOUBLE_SUB_FLAGS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1678,7 +1716,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fdouble_unpack_max", TILEGX_OPC_FDOUBLE_UNPACK_MAX, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1697,7 +1735,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fdouble_unpack_min", TILEGX_OPC_FDOUBLE_UNPACK_MIN, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1716,7 +1754,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fetchadd", TILEGX_OPC_FETCHADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1735,7 +1773,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fetchadd4", TILEGX_OPC_FETCHADD4, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1754,7 +1792,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fetchaddgez", TILEGX_OPC_FETCHADDGEZ, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1773,7 +1811,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fetchaddgez4", TILEGX_OPC_FETCHADDGEZ4, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1792,7 +1830,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fetchand", TILEGX_OPC_FETCHAND, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1811,7 +1849,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fetchand4", TILEGX_OPC_FETCHAND4, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1830,7 +1868,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fetchor", TILEGX_OPC_FETCHOR, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1849,7 +1887,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fetchor4", TILEGX_OPC_FETCHOR4, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1868,7 +1906,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "finv", TILEGX_OPC_FINV, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1887,7 +1925,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "flush", TILEGX_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1944,7 +1982,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fsingle_add1", TILEGX_OPC_FSINGLE_ADD1, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1963,7 +2001,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fsingle_addsub2", TILEGX_OPC_FSINGLE_ADDSUB2, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -1982,7 +2020,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fsingle_mul1", TILEGX_OPC_FSINGLE_MUL1, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -2001,7 +2039,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fsingle_mul2", TILEGX_OPC_FSINGLE_MUL2, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -2020,7 +2058,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fsingle_pack1", TILEGX_OPC_FSINGLE_PACK1, 0x5, 2, TREG_ZERO, 1,
- { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
+ { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -2039,7 +2077,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fsingle_pack2", TILEGX_OPC_FSINGLE_PACK2, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -2058,7 +2096,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "fsingle_sub1", TILEGX_OPC_FSINGLE_SUB1, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -2077,7 +2115,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "icoh", TILEGX_OPC_ICOH, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2115,7 +2153,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "inv", TILEGX_OPC_INV, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2191,7 +2229,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "jalr", TILEGX_OPC_JALR, 0xa, 1, TREG_LR, 1,
- { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2210,7 +2248,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "jalrp", TILEGX_OPC_JALRP, 0xa, 1, TREG_LR, 1,
- { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2229,7 +2267,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "jr", TILEGX_OPC_JR, 0xa, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2248,7 +2286,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "jrp", TILEGX_OPC_JRP, 0xa, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2267,7 +2305,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld", TILEGX_OPC_LD, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2286,7 +2324,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld1s", TILEGX_OPC_LD1S, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2305,7 +2343,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld1s_add", TILEGX_OPC_LD1S_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2324,7 +2362,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld1u", TILEGX_OPC_LD1U, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2343,7 +2381,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld1u_add", TILEGX_OPC_LD1U_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2362,7 +2400,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld2s", TILEGX_OPC_LD2S, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2381,7 +2419,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld2s_add", TILEGX_OPC_LD2S_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2400,7 +2438,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld2u", TILEGX_OPC_LD2U, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2419,7 +2457,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld2u_add", TILEGX_OPC_LD2U_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2438,7 +2476,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld4s", TILEGX_OPC_LD4S, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2457,7 +2495,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld4s_add", TILEGX_OPC_LD4S_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2476,7 +2514,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld4u", TILEGX_OPC_LD4U, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2495,7 +2533,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld4u_add", TILEGX_OPC_LD4U_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2514,7 +2552,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ld_add", TILEGX_OPC_LD_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2533,7 +2571,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldna", TILEGX_OPC_LDNA, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2552,7 +2590,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldna_add", TILEGX_OPC_LDNA_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2571,7 +2609,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt", TILEGX_OPC_LDNT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2590,7 +2628,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt1s", TILEGX_OPC_LDNT1S, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2609,7 +2647,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt1s_add", TILEGX_OPC_LDNT1S_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2628,7 +2666,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt1u", TILEGX_OPC_LDNT1U, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2647,7 +2685,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt1u_add", TILEGX_OPC_LDNT1U_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2666,7 +2704,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt2s", TILEGX_OPC_LDNT2S, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2685,7 +2723,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt2s_add", TILEGX_OPC_LDNT2S_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2704,7 +2742,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt2u", TILEGX_OPC_LDNT2U, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2723,7 +2761,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt2u_add", TILEGX_OPC_LDNT2U_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2742,7 +2780,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt4s", TILEGX_OPC_LDNT4S, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2761,7 +2799,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt4s_add", TILEGX_OPC_LDNT4S_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2780,7 +2818,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt4u", TILEGX_OPC_LDNT4U, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2799,7 +2837,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt4u_add", TILEGX_OPC_LDNT4U_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2818,7 +2856,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ldnt_add", TILEGX_OPC_LDNT_ADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2837,7 +2875,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "lnk", TILEGX_OPC_LNK, 0xa, 1, TREG_ZERO, 1,
- { { 0, }, { 8 }, { 0, }, { 12 }, { 0, } },
+ { { 0, }, { 6 }, { 0, }, { 12 }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2875,7 +2913,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mfspr", TILEGX_OPC_MFSPR, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 8, 27 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 6, 27 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2894,7 +2932,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mm", TILEGX_OPC_MM, 0x1, 4, TREG_ZERO, 1,
- { { 23, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007f000000ULL,
@@ -2913,7 +2951,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mnz", TILEGX_OPC_MNZ, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -2932,7 +2970,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mtspr", TILEGX_OPC_MTSPR, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 28, 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 28, 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2951,7 +2989,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mul_hs_hs", TILEGX_OPC_MUL_HS_HS, 0x5, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -2970,7 +3008,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mul_hs_hu", TILEGX_OPC_MUL_HS_HU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -2989,7 +3027,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mul_hs_ls", TILEGX_OPC_MUL_HS_LS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3008,7 +3046,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mul_hs_lu", TILEGX_OPC_MUL_HS_LU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3027,7 +3065,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mul_hu_hu", TILEGX_OPC_MUL_HU_HU, 0x5, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3046,7 +3084,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mul_hu_ls", TILEGX_OPC_MUL_HU_LS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3065,7 +3103,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mul_hu_lu", TILEGX_OPC_MUL_HU_LU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3084,7 +3122,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mul_ls_ls", TILEGX_OPC_MUL_LS_LS, 0x5, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3103,7 +3141,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mul_ls_lu", TILEGX_OPC_MUL_LS_LU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3122,7 +3160,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mul_lu_lu", TILEGX_OPC_MUL_LU_LU, 0x5, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3141,7 +3179,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mula_hs_hs", TILEGX_OPC_MULA_HS_HS, 0x5, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3160,7 +3198,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mula_hs_hu", TILEGX_OPC_MULA_HS_HU, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3179,7 +3217,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mula_hs_ls", TILEGX_OPC_MULA_HS_LS, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3198,7 +3236,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mula_hs_lu", TILEGX_OPC_MULA_HS_LU, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3217,7 +3255,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mula_hu_hu", TILEGX_OPC_MULA_HU_HU, 0x5, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3236,7 +3274,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mula_hu_ls", TILEGX_OPC_MULA_HU_LS, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3255,7 +3293,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mula_hu_lu", TILEGX_OPC_MULA_HU_LU, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3274,7 +3312,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mula_ls_ls", TILEGX_OPC_MULA_LS_LS, 0x5, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3293,7 +3331,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mula_ls_lu", TILEGX_OPC_MULA_LS_LU, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3312,7 +3350,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mula_lu_lu", TILEGX_OPC_MULA_LU_LU, 0x5, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3331,7 +3369,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mulax", TILEGX_OPC_MULAX, 0x5, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3350,7 +3388,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mulx", TILEGX_OPC_MULX, 0x5, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3369,7 +3407,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "mz", TILEGX_OPC_MZ, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3426,7 +3464,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "nor", TILEGX_OPC_NOR, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3445,7 +3483,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "or", TILEGX_OPC_OR, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3464,7 +3502,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "ori", TILEGX_OPC_ORI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -3483,7 +3521,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "pcnt", TILEGX_OPC_PCNT, 0x5, 2, TREG_ZERO, 1,
- { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
+ { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -3502,7 +3540,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "revbits", TILEGX_OPC_REVBITS, 0x5, 2, TREG_ZERO, 1,
- { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
+ { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -3521,7 +3559,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "revbytes", TILEGX_OPC_REVBYTES, 0x5, 2, TREG_ZERO, 1,
- { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
+ { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -3540,7 +3578,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "rotl", TILEGX_OPC_ROTL, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3559,7 +3597,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "rotli", TILEGX_OPC_ROTLI, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3578,7 +3616,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shl", TILEGX_OPC_SHL, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3597,7 +3635,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shl16insli", TILEGX_OPC_SHL16INSLI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 4 }, { 8, 9, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc000000070000000ULL,
@@ -3616,7 +3654,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shl1add", TILEGX_OPC_SHL1ADD, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3635,7 +3673,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shl1addx", TILEGX_OPC_SHL1ADDX, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3654,7 +3692,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shl2add", TILEGX_OPC_SHL2ADD, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3673,7 +3711,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shl2addx", TILEGX_OPC_SHL2ADDX, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3692,7 +3730,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shl3add", TILEGX_OPC_SHL3ADD, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3711,7 +3749,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shl3addx", TILEGX_OPC_SHL3ADDX, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3730,7 +3768,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shli", TILEGX_OPC_SHLI, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3749,7 +3787,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shlx", TILEGX_OPC_SHLX, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3768,7 +3806,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shlxi", TILEGX_OPC_SHLXI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3787,7 +3825,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shrs", TILEGX_OPC_SHRS, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3806,7 +3844,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shrsi", TILEGX_OPC_SHRSI, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3825,7 +3863,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shru", TILEGX_OPC_SHRU, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3844,7 +3882,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shrui", TILEGX_OPC_SHRUI, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3863,7 +3901,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shrux", TILEGX_OPC_SHRUX, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3882,7 +3920,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shruxi", TILEGX_OPC_SHRUXI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3901,7 +3939,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "shufflebytes", TILEGX_OPC_SHUFFLEBYTES, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -3920,7 +3958,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "st", TILEGX_OPC_ST, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
+ { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -3939,7 +3977,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "st1", TILEGX_OPC_ST1, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
+ { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -3977,7 +4015,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "st2", TILEGX_OPC_ST2, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
+ { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -4015,7 +4053,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "st4", TILEGX_OPC_ST4, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
+ { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -4072,7 +4110,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "stnt", TILEGX_OPC_STNT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -4091,7 +4129,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "stnt1", TILEGX_OPC_STNT1, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -4129,7 +4167,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "stnt2", TILEGX_OPC_STNT2, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -4167,7 +4205,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "stnt4", TILEGX_OPC_STNT4, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -4224,7 +4262,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "sub", TILEGX_OPC_SUB, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4243,7 +4281,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "subx", TILEGX_OPC_SUBX, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4262,7 +4300,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "subxsc", TILEGX_OPC_SUBXSC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4357,7 +4395,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "tblidxb0", TILEGX_OPC_TBLIDXB0, 0x5, 2, TREG_ZERO, 1,
- { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
+ { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -4376,7 +4414,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "tblidxb1", TILEGX_OPC_TBLIDXB1, 0x5, 2, TREG_ZERO, 1,
- { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
+ { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -4395,7 +4433,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "tblidxb2", TILEGX_OPC_TBLIDXB2, 0x5, 2, TREG_ZERO, 1,
- { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
+ { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -4414,7 +4452,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "tblidxb3", TILEGX_OPC_TBLIDXB3, 0x5, 2, TREG_ZERO, 1,
- { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
+ { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffff000ULL,
@@ -4433,7 +4471,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1add", TILEGX_OPC_V1ADD, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4452,7 +4490,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1addi", TILEGX_OPC_V1ADDI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -4471,7 +4509,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1adduc", TILEGX_OPC_V1ADDUC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4490,7 +4528,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1adiffu", TILEGX_OPC_V1ADIFFU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4509,7 +4547,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1avgu", TILEGX_OPC_V1AVGU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4528,7 +4566,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1cmpeq", TILEGX_OPC_V1CMPEQ, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4547,7 +4585,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1cmpeqi", TILEGX_OPC_V1CMPEQI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -4566,7 +4604,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1cmples", TILEGX_OPC_V1CMPLES, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4585,7 +4623,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1cmpleu", TILEGX_OPC_V1CMPLEU, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4604,7 +4642,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1cmplts", TILEGX_OPC_V1CMPLTS, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4623,7 +4661,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1cmpltsi", TILEGX_OPC_V1CMPLTSI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -4642,7 +4680,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1cmpltu", TILEGX_OPC_V1CMPLTU, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4661,7 +4699,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1cmpltui", TILEGX_OPC_V1CMPLTUI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -4680,7 +4718,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1cmpne", TILEGX_OPC_V1CMPNE, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4699,7 +4737,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1ddotpu", TILEGX_OPC_V1DDOTPU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4718,7 +4756,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1ddotpua", TILEGX_OPC_V1DDOTPUA, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4737,7 +4775,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1ddotpus", TILEGX_OPC_V1DDOTPUS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4756,7 +4794,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1ddotpusa", TILEGX_OPC_V1DDOTPUSA, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4775,7 +4813,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1dotp", TILEGX_OPC_V1DOTP, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4794,7 +4832,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1dotpa", TILEGX_OPC_V1DOTPA, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4813,7 +4851,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1dotpu", TILEGX_OPC_V1DOTPU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4832,7 +4870,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1dotpua", TILEGX_OPC_V1DOTPUA, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4851,7 +4889,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1dotpus", TILEGX_OPC_V1DOTPUS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4870,7 +4908,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1dotpusa", TILEGX_OPC_V1DOTPUSA, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4889,7 +4927,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1int_h", TILEGX_OPC_V1INT_H, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4908,7 +4946,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1int_l", TILEGX_OPC_V1INT_L, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4927,7 +4965,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1maxu", TILEGX_OPC_V1MAXU, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4946,7 +4984,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1maxui", TILEGX_OPC_V1MAXUI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -4965,7 +5003,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1minu", TILEGX_OPC_V1MINU, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -4984,7 +5022,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1minui", TILEGX_OPC_V1MINUI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -5003,7 +5041,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1mnz", TILEGX_OPC_V1MNZ, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5022,7 +5060,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1multu", TILEGX_OPC_V1MULTU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5041,7 +5079,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1mulu", TILEGX_OPC_V1MULU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5060,7 +5098,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1mulus", TILEGX_OPC_V1MULUS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5079,7 +5117,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1mz", TILEGX_OPC_V1MZ, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5098,7 +5136,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1sadau", TILEGX_OPC_V1SADAU, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5117,7 +5155,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1sadu", TILEGX_OPC_V1SADU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5136,7 +5174,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1shl", TILEGX_OPC_V1SHL, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5155,7 +5193,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1shli", TILEGX_OPC_V1SHLI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5174,7 +5212,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1shrs", TILEGX_OPC_V1SHRS, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5193,7 +5231,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1shrsi", TILEGX_OPC_V1SHRSI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5212,7 +5250,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1shru", TILEGX_OPC_V1SHRU, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5231,7 +5269,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1shrui", TILEGX_OPC_V1SHRUI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5250,7 +5288,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1sub", TILEGX_OPC_V1SUB, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5269,7 +5307,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v1subuc", TILEGX_OPC_V1SUBUC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5288,7 +5326,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2add", TILEGX_OPC_V2ADD, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5307,7 +5345,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2addi", TILEGX_OPC_V2ADDI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -5326,7 +5364,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2addsc", TILEGX_OPC_V2ADDSC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5345,7 +5383,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2adiffs", TILEGX_OPC_V2ADIFFS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5364,7 +5402,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2avgs", TILEGX_OPC_V2AVGS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5383,7 +5421,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2cmpeq", TILEGX_OPC_V2CMPEQ, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5402,7 +5440,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2cmpeqi", TILEGX_OPC_V2CMPEQI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -5421,7 +5459,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2cmples", TILEGX_OPC_V2CMPLES, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5440,7 +5478,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2cmpleu", TILEGX_OPC_V2CMPLEU, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5459,7 +5497,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2cmplts", TILEGX_OPC_V2CMPLTS, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5478,7 +5516,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2cmpltsi", TILEGX_OPC_V2CMPLTSI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -5497,7 +5535,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2cmpltu", TILEGX_OPC_V2CMPLTU, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5516,7 +5554,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2cmpltui", TILEGX_OPC_V2CMPLTUI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -5535,7 +5573,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2cmpne", TILEGX_OPC_V2CMPNE, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5554,7 +5592,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2dotp", TILEGX_OPC_V2DOTP, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5573,7 +5611,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2dotpa", TILEGX_OPC_V2DOTPA, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5592,7 +5630,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2int_h", TILEGX_OPC_V2INT_H, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5611,7 +5649,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2int_l", TILEGX_OPC_V2INT_L, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5630,7 +5668,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2maxs", TILEGX_OPC_V2MAXS, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5649,7 +5687,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2maxsi", TILEGX_OPC_V2MAXSI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -5668,7 +5706,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2mins", TILEGX_OPC_V2MINS, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5687,7 +5725,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2minsi", TILEGX_OPC_V2MINSI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -5706,7 +5744,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2mnz", TILEGX_OPC_V2MNZ, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5725,7 +5763,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2mulfsc", TILEGX_OPC_V2MULFSC, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5744,7 +5782,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2muls", TILEGX_OPC_V2MULS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5763,7 +5801,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2mults", TILEGX_OPC_V2MULTS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5782,7 +5820,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2mz", TILEGX_OPC_V2MZ, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5801,7 +5839,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2packh", TILEGX_OPC_V2PACKH, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5820,7 +5858,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2packl", TILEGX_OPC_V2PACKL, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5839,7 +5877,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2packuc", TILEGX_OPC_V2PACKUC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5858,7 +5896,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2sadas", TILEGX_OPC_V2SADAS, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5877,7 +5915,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2sadau", TILEGX_OPC_V2SADAU, 0x1, 3, TREG_ZERO, 1,
- { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5896,7 +5934,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2sads", TILEGX_OPC_V2SADS, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5915,7 +5953,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2sadu", TILEGX_OPC_V2SADU, 0x1, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5934,7 +5972,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2shl", TILEGX_OPC_V2SHL, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5953,7 +5991,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2shli", TILEGX_OPC_V2SHLI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5972,7 +6010,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2shlsc", TILEGX_OPC_V2SHLSC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -5991,7 +6029,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2shrs", TILEGX_OPC_V2SHRS, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6010,7 +6048,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2shrsi", TILEGX_OPC_V2SHRSI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6029,7 +6067,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2shru", TILEGX_OPC_V2SHRU, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6048,7 +6086,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2shrui", TILEGX_OPC_V2SHRUI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6067,7 +6105,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2sub", TILEGX_OPC_V2SUB, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6086,7 +6124,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v2subsc", TILEGX_OPC_V2SUBSC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6105,7 +6143,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4add", TILEGX_OPC_V4ADD, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6124,7 +6162,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4addsc", TILEGX_OPC_V4ADDSC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6143,7 +6181,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4int_h", TILEGX_OPC_V4INT_H, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6162,7 +6200,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4int_l", TILEGX_OPC_V4INT_L, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6181,7 +6219,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4packsc", TILEGX_OPC_V4PACKSC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6200,7 +6238,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4shl", TILEGX_OPC_V4SHL, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6219,7 +6257,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4shlsc", TILEGX_OPC_V4SHLSC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6238,7 +6276,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4shrs", TILEGX_OPC_V4SHRS, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6257,7 +6295,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4shru", TILEGX_OPC_V4SHRU, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6276,7 +6314,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4sub", TILEGX_OPC_V4SUB, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6295,7 +6333,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "v4subsc", TILEGX_OPC_V4SUBSC, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6314,7 +6352,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "wh64", TILEGX_OPC_WH64, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -6333,7 +6371,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "xor", TILEGX_OPC_XOR, 0xf, 3, TREG_ZERO, 1,
- { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
+ { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ffc0000ULL,
@@ -6352,7 +6390,7 @@ const struct tilegx_opcode tilegx_opcodes[334] =
#endif
},
{ "xori", TILEGX_OPC_XORI, 0x3, 3, TREG_ZERO, 1,
- { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0xc00000007ff00000ULL,
@@ -6672,7 +6710,7 @@ static const unsigned short decode_X0_fsm[936] =
TILEGX_OPC_INFOL,
};
-static const unsigned short decode_X1_fsm[1206] =
+static const unsigned short decode_X1_fsm[1266] =
{
BITFIELD(53, 9) /* index 0 */,
CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
@@ -6718,8 +6756,8 @@ static const unsigned short decode_X1_fsm[1206] =
TILEGX_OPC_BLEZT, TILEGX_OPC_BLEZ, TILEGX_OPC_BLEZ, TILEGX_OPC_BLTZT,
TILEGX_OPC_BLTZT, TILEGX_OPC_BLTZ, TILEGX_OPC_BLTZ, TILEGX_OPC_BNEZT,
TILEGX_OPC_BNEZT, TILEGX_OPC_BNEZ, TILEGX_OPC_BNEZ, CHILD(528), CHILD(578),
- CHILD(598), CHILD(663), CHILD(683), CHILD(688), CHILD(693), CHILD(698),
- CHILD(703), CHILD(708), CHILD(713), CHILD(718), TILEGX_OPC_NONE,
+ CHILD(598), CHILD(703), CHILD(723), CHILD(728), CHILD(753), CHILD(758),
+ CHILD(763), CHILD(768), CHILD(773), CHILD(778), TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
@@ -6747,8 +6785,8 @@ static const unsigned short decode_X1_fsm[1206] =
TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
- CHILD(723), CHILD(740), CHILD(772), CHILD(789), CHILD(1108), CHILD(1125),
- CHILD(1142), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
+ CHILD(783), CHILD(800), CHILD(832), CHILD(849), CHILD(1168), CHILD(1185),
+ CHILD(1202), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
@@ -6762,7 +6800,7 @@ static const unsigned short decode_X1_fsm[1206] =
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
- TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1159), TILEGX_OPC_NONE,
+ TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1219), TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
@@ -6778,20 +6816,20 @@ static const unsigned short decode_X1_fsm[1206] =
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
- TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
- CHILD(1176),
+ TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
+ CHILD(1236),
BITFIELD(37, 2) /* index 513 */,
TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(518),
BITFIELD(39, 2) /* index 518 */,
@@ -6851,68 +6889,96 @@ static const unsigned short decode_X1_fsm[1206] =
TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD,
TILEGX_OPC_PREFETCH_ADD_L2,
BITFIELD(31, 2) /* index 648 */,
- TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, CHILD(653),
- BITFIELD(33, 2) /* index 653 */,
- TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, CHILD(658),
- BITFIELD(35, 2) /* index 658 */,
- TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
- TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
- BITFIELD(51, 2) /* index 663 */,
- CHILD(668), TILEGX_OPC_LDNT1S_ADD, TILEGX_OPC_LDNT1U_ADD,
- TILEGX_OPC_LDNT2S_ADD,
- BITFIELD(31, 2) /* index 668 */,
- TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(673),
+ CHILD(653), CHILD(653), CHILD(653), CHILD(673),
+ BITFIELD(43, 2) /* index 653 */,
+ CHILD(658), TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
+ BITFIELD(45, 2) /* index 658 */,
+ CHILD(663), TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
+ BITFIELD(47, 2) /* index 663 */,
+ CHILD(668), TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
+ BITFIELD(49, 2) /* index 668 */,
+ TILEGX_OPC_LD4S_TLS, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
+ TILEGX_OPC_LD4S_ADD,
BITFIELD(33, 2) /* index 673 */,
- TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(678),
+ CHILD(653), CHILD(653), CHILD(653), CHILD(678),
BITFIELD(35, 2) /* index 678 */,
+ CHILD(653), CHILD(653), CHILD(653), CHILD(683),
+ BITFIELD(43, 2) /* index 683 */,
+ CHILD(688), TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
+ TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
+ BITFIELD(45, 2) /* index 688 */,
+ CHILD(693), TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
+ TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
+ BITFIELD(47, 2) /* index 693 */,
+ CHILD(698), TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
+ TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
+ BITFIELD(49, 2) /* index 698 */,
+ TILEGX_OPC_LD4S_TLS, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
+ TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
+ BITFIELD(51, 2) /* index 703 */,
+ CHILD(708), TILEGX_OPC_LDNT1S_ADD, TILEGX_OPC_LDNT1U_ADD,
+ TILEGX_OPC_LDNT2S_ADD,
+ BITFIELD(31, 2) /* index 708 */,
+ TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(713),
+ BITFIELD(33, 2) /* index 713 */,
+ TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(718),
+ BITFIELD(35, 2) /* index 718 */,
TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD,
TILEGX_OPC_PREFETCH_ADD_L3,
- BITFIELD(51, 2) /* index 683 */,
+ BITFIELD(51, 2) /* index 723 */,
TILEGX_OPC_LDNT2U_ADD, TILEGX_OPC_LDNT4S_ADD, TILEGX_OPC_LDNT4U_ADD,
TILEGX_OPC_LDNT_ADD,
- BITFIELD(51, 2) /* index 688 */,
- TILEGX_OPC_LD_ADD, TILEGX_OPC_LDNA_ADD, TILEGX_OPC_MFSPR, TILEGX_OPC_MTSPR,
- BITFIELD(51, 2) /* index 693 */,
+ BITFIELD(51, 2) /* index 728 */,
+ CHILD(733), TILEGX_OPC_LDNA_ADD, TILEGX_OPC_MFSPR, TILEGX_OPC_MTSPR,
+ BITFIELD(43, 2) /* index 733 */,
+ CHILD(738), TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
+ BITFIELD(45, 2) /* index 738 */,
+ CHILD(743), TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
+ BITFIELD(47, 2) /* index 743 */,
+ CHILD(748), TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
+ BITFIELD(49, 2) /* index 748 */,
+ TILEGX_OPC_LD_TLS, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
+ BITFIELD(51, 2) /* index 753 */,
TILEGX_OPC_ORI, TILEGX_OPC_ST1_ADD, TILEGX_OPC_ST2_ADD, TILEGX_OPC_ST4_ADD,
- BITFIELD(51, 2) /* index 698 */,
+ BITFIELD(51, 2) /* index 758 */,
TILEGX_OPC_STNT1_ADD, TILEGX_OPC_STNT2_ADD, TILEGX_OPC_STNT4_ADD,
TILEGX_OPC_STNT_ADD,
- BITFIELD(51, 2) /* index 703 */,
+ BITFIELD(51, 2) /* index 763 */,
TILEGX_OPC_ST_ADD, TILEGX_OPC_V1ADDI, TILEGX_OPC_V1CMPEQI,
TILEGX_OPC_V1CMPLTSI,
- BITFIELD(51, 2) /* index 708 */,
+ BITFIELD(51, 2) /* index 768 */,
TILEGX_OPC_V1CMPLTUI, TILEGX_OPC_V1MAXUI, TILEGX_OPC_V1MINUI,
TILEGX_OPC_V2ADDI,
- BITFIELD(51, 2) /* index 713 */,
+ BITFIELD(51, 2) /* index 773 */,
TILEGX_OPC_V2CMPEQI, TILEGX_OPC_V2CMPLTSI, TILEGX_OPC_V2CMPLTUI,
TILEGX_OPC_V2MAXSI,
- BITFIELD(51, 2) /* index 718 */,
+ BITFIELD(51, 2) /* index 778 */,
TILEGX_OPC_V2MINSI, TILEGX_OPC_XORI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
- BITFIELD(49, 4) /* index 723 */,
+ BITFIELD(49, 4) /* index 783 */,
TILEGX_OPC_NONE, TILEGX_OPC_ADDXSC, TILEGX_OPC_ADDX, TILEGX_OPC_ADD,
TILEGX_OPC_AND, TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPEXCH4, TILEGX_OPC_CMPEXCH,
TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
TILEGX_OPC_CMPNE, TILEGX_OPC_DBLALIGN2, TILEGX_OPC_DBLALIGN4,
TILEGX_OPC_DBLALIGN6,
- BITFIELD(49, 4) /* index 740 */,
+ BITFIELD(49, 4) /* index 800 */,
TILEGX_OPC_EXCH4, TILEGX_OPC_EXCH, TILEGX_OPC_FETCHADD4,
TILEGX_OPC_FETCHADDGEZ4, TILEGX_OPC_FETCHADDGEZ, TILEGX_OPC_FETCHADD,
TILEGX_OPC_FETCHAND4, TILEGX_OPC_FETCHAND, TILEGX_OPC_FETCHOR4,
TILEGX_OPC_FETCHOR, TILEGX_OPC_MNZ, TILEGX_OPC_MZ, TILEGX_OPC_NOR,
- CHILD(757), TILEGX_OPC_ROTL, TILEGX_OPC_SHL1ADDX,
- BITFIELD(43, 2) /* index 757 */,
- TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(762),
- BITFIELD(45, 2) /* index 762 */,
- TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(767),
- BITFIELD(47, 2) /* index 767 */,
+ CHILD(817), TILEGX_OPC_ROTL, TILEGX_OPC_SHL1ADDX,
+ BITFIELD(43, 2) /* index 817 */,
+ TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(822),
+ BITFIELD(45, 2) /* index 822 */,
+ TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(827),
+ BITFIELD(47, 2) /* index 827 */,
TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
- BITFIELD(49, 4) /* index 772 */,
+ BITFIELD(49, 4) /* index 832 */,
TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADDX, TILEGX_OPC_SHL2ADD,
TILEGX_OPC_SHL3ADDX, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHLX, TILEGX_OPC_SHL,
TILEGX_OPC_SHRS, TILEGX_OPC_SHRUX, TILEGX_OPC_SHRU, TILEGX_OPC_ST1,
TILEGX_OPC_ST2, TILEGX_OPC_ST4, TILEGX_OPC_STNT1, TILEGX_OPC_STNT2,
TILEGX_OPC_STNT4,
- BITFIELD(46, 7) /* index 789 */,
+ BITFIELD(46, 7) /* index 849 */,
TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT,
TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT,
TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST,
@@ -6922,8 +6988,8 @@ static const unsigned short decode_X1_fsm[1206] =
TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX,
TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB,
- TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, CHILD(918), CHILD(927),
- CHILD(1006), CHILD(1090), CHILD(1099), TILEGX_OPC_NONE, TILEGX_OPC_NONE,
+ TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, CHILD(978), CHILD(987),
+ CHILD(1066), CHILD(1150), CHILD(1159), TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC,
TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC,
TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD,
@@ -6950,122 +7016,122 @@ static const unsigned short decode_X1_fsm[1206] =
TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
- BITFIELD(43, 3) /* index 918 */,
+ BITFIELD(43, 3) /* index 978 */,
TILEGX_OPC_NONE, TILEGX_OPC_DRAIN, TILEGX_OPC_DTLBPR, TILEGX_OPC_FINV,
TILEGX_OPC_FLUSHWB, TILEGX_OPC_FLUSH, TILEGX_OPC_FNOP, TILEGX_OPC_ICOH,
- BITFIELD(43, 3) /* index 927 */,
- CHILD(936), TILEGX_OPC_INV, TILEGX_OPC_IRET, TILEGX_OPC_JALRP,
- TILEGX_OPC_JALR, TILEGX_OPC_JRP, TILEGX_OPC_JR, CHILD(991),
- BITFIELD(31, 2) /* index 936 */,
- CHILD(941), CHILD(966), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
- BITFIELD(33, 2) /* index 941 */,
- TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(946),
- BITFIELD(35, 2) /* index 946 */,
- TILEGX_OPC_ILL, CHILD(951), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
- BITFIELD(37, 2) /* index 951 */,
- TILEGX_OPC_ILL, CHILD(956), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
- BITFIELD(39, 2) /* index 956 */,
- TILEGX_OPC_ILL, CHILD(961), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
- BITFIELD(41, 2) /* index 961 */,
+ BITFIELD(43, 3) /* index 987 */,
+ CHILD(996), TILEGX_OPC_INV, TILEGX_OPC_IRET, TILEGX_OPC_JALRP,
+ TILEGX_OPC_JALR, TILEGX_OPC_JRP, TILEGX_OPC_JR, CHILD(1051),
+ BITFIELD(31, 2) /* index 996 */,
+ CHILD(1001), CHILD(1026), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
+ BITFIELD(33, 2) /* index 1001 */,
+ TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(1006),
+ BITFIELD(35, 2) /* index 1006 */,
+ TILEGX_OPC_ILL, CHILD(1011), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
+ BITFIELD(37, 2) /* index 1011 */,
+ TILEGX_OPC_ILL, CHILD(1016), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
+ BITFIELD(39, 2) /* index 1016 */,
+ TILEGX_OPC_ILL, CHILD(1021), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
+ BITFIELD(41, 2) /* index 1021 */,
TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_BPT, TILEGX_OPC_ILL,
- BITFIELD(33, 2) /* index 966 */,
- TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(971),
- BITFIELD(35, 2) /* index 971 */,
- TILEGX_OPC_ILL, CHILD(976), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
- BITFIELD(37, 2) /* index 976 */,
- TILEGX_OPC_ILL, CHILD(981), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
- BITFIELD(39, 2) /* index 981 */,
- TILEGX_OPC_ILL, CHILD(986), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
- BITFIELD(41, 2) /* index 986 */,
+ BITFIELD(33, 2) /* index 1026 */,
+ TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(1031),
+ BITFIELD(35, 2) /* index 1031 */,
+ TILEGX_OPC_ILL, CHILD(1036), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
+ BITFIELD(37, 2) /* index 1036 */,
+ TILEGX_OPC_ILL, CHILD(1041), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
+ BITFIELD(39, 2) /* index 1041 */,
+ TILEGX_OPC_ILL, CHILD(1046), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
+ BITFIELD(41, 2) /* index 1046 */,
TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_RAISE, TILEGX_OPC_ILL,
- BITFIELD(31, 2) /* index 991 */,
- TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(996),
- BITFIELD(33, 2) /* index 996 */,
- TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(1001),
- BITFIELD(35, 2) /* index 1001 */,
+ BITFIELD(31, 2) /* index 1051 */,
+ TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(1056),
+ BITFIELD(33, 2) /* index 1056 */,
+ TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(1061),
+ BITFIELD(35, 2) /* index 1061 */,
TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S,
TILEGX_OPC_PREFETCH_L1_FAULT,
- BITFIELD(43, 3) /* index 1006 */,
- CHILD(1015), CHILD(1030), CHILD(1045), CHILD(1060), CHILD(1075),
+ BITFIELD(43, 3) /* index 1066 */,
+ CHILD(1075), CHILD(1090), CHILD(1105), CHILD(1120), CHILD(1135),
TILEGX_OPC_LDNA, TILEGX_OPC_LDNT1S, TILEGX_OPC_LDNT1U,
- BITFIELD(31, 2) /* index 1015 */,
- TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1020),
- BITFIELD(33, 2) /* index 1020 */,
- TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1025),
- BITFIELD(35, 2) /* index 1025 */,
+ BITFIELD(31, 2) /* index 1075 */,
+ TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1080),
+ BITFIELD(33, 2) /* index 1080 */,
+ TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1085),
+ BITFIELD(35, 2) /* index 1085 */,
TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_PREFETCH,
- BITFIELD(31, 2) /* index 1030 */,
- TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1035),
- BITFIELD(33, 2) /* index 1035 */,
- TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1040),
- BITFIELD(35, 2) /* index 1040 */,
+ BITFIELD(31, 2) /* index 1090 */,
+ TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1095),
+ BITFIELD(33, 2) /* index 1095 */,
+ TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1100),
+ BITFIELD(35, 2) /* index 1100 */,
TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S,
TILEGX_OPC_PREFETCH_L2_FAULT,
- BITFIELD(31, 2) /* index 1045 */,
- TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1050),
- BITFIELD(33, 2) /* index 1050 */,
- TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1055),
- BITFIELD(35, 2) /* index 1055 */,
+ BITFIELD(31, 2) /* index 1105 */,
+ TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1110),
+ BITFIELD(33, 2) /* index 1110 */,
+ TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1115),
+ BITFIELD(35, 2) /* index 1115 */,
TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_PREFETCH_L2,
- BITFIELD(31, 2) /* index 1060 */,
- TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1065),
- BITFIELD(33, 2) /* index 1065 */,
- TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1070),
- BITFIELD(35, 2) /* index 1070 */,
+ BITFIELD(31, 2) /* index 1120 */,
+ TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1125),
+ BITFIELD(33, 2) /* index 1125 */,
+ TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1130),
+ BITFIELD(35, 2) /* index 1130 */,
TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S,
TILEGX_OPC_PREFETCH_L3_FAULT,
- BITFIELD(31, 2) /* index 1075 */,
- TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1080),
- BITFIELD(33, 2) /* index 1080 */,
- TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1085),
- BITFIELD(35, 2) /* index 1085 */,
+ BITFIELD(31, 2) /* index 1135 */,
+ TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1140),
+ BITFIELD(33, 2) /* index 1140 */,
+ TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1145),
+ BITFIELD(35, 2) /* index 1145 */,
TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_PREFETCH_L3,
- BITFIELD(43, 3) /* index 1090 */,
+ BITFIELD(43, 3) /* index 1150 */,
TILEGX_OPC_LDNT2S, TILEGX_OPC_LDNT2U, TILEGX_OPC_LDNT4S, TILEGX_OPC_LDNT4U,
TILEGX_OPC_LDNT, TILEGX_OPC_LD, TILEGX_OPC_LNK, TILEGX_OPC_MF,
- BITFIELD(43, 3) /* index 1099 */,
+ BITFIELD(43, 3) /* index 1159 */,
TILEGX_OPC_NAP, TILEGX_OPC_NOP, TILEGX_OPC_SWINT0, TILEGX_OPC_SWINT1,
TILEGX_OPC_SWINT2, TILEGX_OPC_SWINT3, TILEGX_OPC_WH64, TILEGX_OPC_NONE,
- BITFIELD(49, 4) /* index 1108 */,
+ BITFIELD(49, 4) /* index 1168 */,
TILEGX_OPC_V1MAXU, TILEGX_OPC_V1MINU, TILEGX_OPC_V1MNZ, TILEGX_OPC_V1MZ,
TILEGX_OPC_V1SHL, TILEGX_OPC_V1SHRS, TILEGX_OPC_V1SHRU, TILEGX_OPC_V1SUBUC,
TILEGX_OPC_V1SUB, TILEGX_OPC_V2ADDSC, TILEGX_OPC_V2ADD, TILEGX_OPC_V2CMPEQ,
TILEGX_OPC_V2CMPLES, TILEGX_OPC_V2CMPLEU, TILEGX_OPC_V2CMPLTS,
TILEGX_OPC_V2CMPLTU,
- BITFIELD(49, 4) /* index 1125 */,
+ BITFIELD(49, 4) /* index 1185 */,
TILEGX_OPC_V2CMPNE, TILEGX_OPC_V2INT_H, TILEGX_OPC_V2INT_L,
TILEGX_OPC_V2MAXS, TILEGX_OPC_V2MINS, TILEGX_OPC_V2MNZ, TILEGX_OPC_V2MZ,
TILEGX_OPC_V2PACKH, TILEGX_OPC_V2PACKL, TILEGX_OPC_V2PACKUC,
TILEGX_OPC_V2SHLSC, TILEGX_OPC_V2SHL, TILEGX_OPC_V2SHRS, TILEGX_OPC_V2SHRU,
TILEGX_OPC_V2SUBSC, TILEGX_OPC_V2SUB,
- BITFIELD(49, 4) /* index 1142 */,
+ BITFIELD(49, 4) /* index 1202 */,
TILEGX_OPC_V4ADDSC, TILEGX_OPC_V4ADD, TILEGX_OPC_V4INT_H,
TILEGX_OPC_V4INT_L, TILEGX_OPC_V4PACKSC, TILEGX_OPC_V4SHLSC,
TILEGX_OPC_V4SHL, TILEGX_OPC_V4SHRS, TILEGX_OPC_V4SHRU, TILEGX_OPC_V4SUBSC,
TILEGX_OPC_V4SUB, TILEGX_OPC_XOR, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE, TILEGX_OPC_NONE,
- BITFIELD(49, 4) /* index 1159 */,
+ BITFIELD(49, 4) /* index 1219 */,
TILEGX_OPC_NONE, TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHLXI,
TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI, TILEGX_OPC_SHRUXI, TILEGX_OPC_V1SHLI,
TILEGX_OPC_V1SHRSI, TILEGX_OPC_V1SHRUI, TILEGX_OPC_V2SHLI,
TILEGX_OPC_V2SHRSI, TILEGX_OPC_V2SHRUI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
TILEGX_OPC_NONE,
- BITFIELD(31, 2) /* index 1176 */,
+ BITFIELD(31, 2) /* index 1236 */,
TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
- CHILD(1181),
- BITFIELD(33, 2) /* index 1181 */,
+ CHILD(1241),
+ BITFIELD(33, 2) /* index 1241 */,
TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
- CHILD(1186),
- BITFIELD(35, 2) /* index 1186 */,
+ CHILD(1246),
+ BITFIELD(35, 2) /* index 1246 */,
TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
- CHILD(1191),
- BITFIELD(37, 2) /* index 1191 */,
+ CHILD(1251),
+ BITFIELD(37, 2) /* index 1251 */,
TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
- CHILD(1196),
- BITFIELD(39, 2) /* index 1196 */,
+ CHILD(1256),
+ BITFIELD(39, 2) /* index 1256 */,
TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
- CHILD(1201),
- BITFIELD(41, 2) /* index 1201 */,
+ CHILD(1261),
+ BITFIELD(41, 2) /* index 1261 */,
TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
TILEGX_OPC_INFOL,
};
@@ -7328,22 +7394,22 @@ const struct tilegx_operand tilegx_operands[35] =
{
TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
6, 0, 0, 1, 0, 0,
- create_Dest_X0, get_Dest_X0
+ create_Dest_X1, get_Dest_X1
},
{
TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
6, 0, 1, 0, 0, 0,
- create_SrcA_X0, get_SrcA_X0
+ create_SrcA_X1, get_SrcA_X1
},
{
TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
6, 0, 0, 1, 0, 0,
- create_Dest_X1, get_Dest_X1
+ create_Dest_X0, get_Dest_X0
},
{
TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
6, 0, 1, 0, 0, 0,
- create_SrcA_X1, get_SrcA_X1
+ create_SrcA_X0, get_SrcA_X0
},
{
TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
diff --git a/opcodes/tilepro-opc.c b/opcodes/tilepro-opc.c
index c3f6be4b46..9158d0e790 100644
--- a/opcodes/tilepro-opc.c
+++ b/opcodes/tilepro-opc.c
@@ -41,7 +41,7 @@
#include <stddef.h>
#endif
-const struct tilepro_opcode tilepro_opcodes[395] =
+const struct tilepro_opcode tilepro_opcodes[397] =
{
{ "bpt", TILEPRO_OPC_BPT, 0x2, 0, TREG_ZERO, 0,
{ { 0, }, { }, { 0, }, { 0, }, { 0, } },
@@ -138,8 +138,46 @@ const struct tilepro_opcode tilepro_opcodes[395] =
}
#endif
},
+ { "lw_tls", TILEPRO_OPC_LW_TLS, 0x2, 3, TREG_ZERO, 1,
+ { { 0, }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
+#ifndef DISASM_ONLY
+ {
+ 0ULL,
+ 0xfffff80000000000ULL,
+ 0ULL,
+ 0ULL,
+ 0ULL
+ },
+ {
+ -1ULL,
+ 0x30d0000000000000ULL,
+ -1ULL,
+ -1ULL,
+ -1ULL
+ }
+#endif
+ },
+ { "lw_tls.sn", TILEPRO_OPC_LW_TLS_SN, 0x2, 3, TREG_SN, 1,
+ { { 0, }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
+#ifndef DISASM_ONLY
+ {
+ 0ULL,
+ 0xfffff80000000000ULL,
+ 0ULL,
+ 0ULL,
+ 0ULL
+ },
+ {
+ -1ULL,
+ 0x34d0000000000000ULL,
+ -1ULL,
+ -1ULL,
+ -1ULL
+ }
+#endif
+ },
{ "move", TILEPRO_OPC_MOVE, 0xf, 2, TREG_ZERO, 1,
- { { 7, 8 }, { 9, 10 }, { 11, 12 }, { 13, 14 }, { 0, } },
+ { { 9, 10 }, { 7, 8 }, { 11, 12 }, { 13, 14 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -158,7 +196,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "move.sn", TILEPRO_OPC_MOVE_SN, 0x3, 2, TREG_SN, 1,
- { { 7, 8 }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10 }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -177,7 +215,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "movei", TILEPRO_OPC_MOVEI, 0xf, 2, TREG_ZERO, 1,
- { { 7, 0 }, { 9, 1 }, { 11, 2 }, { 13, 3 }, { 0, } },
+ { { 9, 0 }, { 7, 1 }, { 11, 2 }, { 13, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00fc0ULL,
@@ -196,7 +234,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "movei.sn", TILEPRO_OPC_MOVEI_SN, 0x3, 2, TREG_SN, 1,
- { { 7, 0 }, { 9, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 0 }, { 7, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00fc0ULL,
@@ -215,7 +253,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "moveli", TILEPRO_OPC_MOVELI, 0x3, 2, TREG_ZERO, 1,
- { { 7, 4 }, { 9, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 4 }, { 7, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x8000000070000fc0ULL,
@@ -234,7 +272,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "moveli.sn", TILEPRO_OPC_MOVELI_SN, 0x3, 2, TREG_SN, 1,
- { { 7, 4 }, { 9, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 4 }, { 7, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x8000000070000fc0ULL,
@@ -253,7 +291,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "movelis", TILEPRO_OPC_MOVELIS, 0x3, 2, TREG_SN, 1,
- { { 7, 4 }, { 9, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 4 }, { 7, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x8000000070000fc0ULL,
@@ -272,7 +310,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "prefetch", TILEPRO_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 15 } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 15 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -310,7 +348,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "add", TILEPRO_OPC_ADD, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -329,7 +367,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "add.sn", TILEPRO_OPC_ADD_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -348,7 +386,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addb", TILEPRO_OPC_ADDB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -367,7 +405,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addb.sn", TILEPRO_OPC_ADDB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -386,7 +424,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addbs_u", TILEPRO_OPC_ADDBS_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -405,7 +443,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addbs_u.sn", TILEPRO_OPC_ADDBS_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -424,7 +462,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addh", TILEPRO_OPC_ADDH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -443,7 +481,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addh.sn", TILEPRO_OPC_ADDH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -462,7 +500,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addhs", TILEPRO_OPC_ADDHS, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -481,7 +519,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addhs.sn", TILEPRO_OPC_ADDHS_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -500,7 +538,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addi", TILEPRO_OPC_ADDI, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -519,7 +557,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addi.sn", TILEPRO_OPC_ADDI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -538,7 +576,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addib", TILEPRO_OPC_ADDIB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -557,7 +595,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addib.sn", TILEPRO_OPC_ADDIB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -576,7 +614,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addih", TILEPRO_OPC_ADDIH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -595,7 +633,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addih.sn", TILEPRO_OPC_ADDIH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -614,7 +652,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addli", TILEPRO_OPC_ADDLI, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 4 }, { 9, 10, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 4 }, { 7, 8, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x8000000070000000ULL,
@@ -633,7 +671,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addli.sn", TILEPRO_OPC_ADDLI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 4 }, { 9, 10, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 4 }, { 7, 8, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x8000000070000000ULL,
@@ -652,7 +690,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "addlis", TILEPRO_OPC_ADDLIS, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 4 }, { 9, 10, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 4 }, { 7, 8, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x8000000070000000ULL,
@@ -671,7 +709,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "adds", TILEPRO_OPC_ADDS, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -690,7 +728,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "adds.sn", TILEPRO_OPC_ADDS_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -709,7 +747,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "adiffb_u", TILEPRO_OPC_ADIFFB_U, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -728,7 +766,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "adiffb_u.sn", TILEPRO_OPC_ADIFFB_U_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -747,7 +785,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "adiffh", TILEPRO_OPC_ADIFFH, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -766,7 +804,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "adiffh.sn", TILEPRO_OPC_ADIFFH_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -785,7 +823,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "and", TILEPRO_OPC_AND, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -804,7 +842,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "and.sn", TILEPRO_OPC_AND_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -823,7 +861,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "andi", TILEPRO_OPC_ANDI, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -842,7 +880,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "andi.sn", TILEPRO_OPC_ANDI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -861,7 +899,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "auli", TILEPRO_OPC_AULI, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 4 }, { 9, 10, 5 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 4 }, { 7, 8, 5 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x8000000070000000ULL,
@@ -880,7 +918,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "avgb_u", TILEPRO_OPC_AVGB_U, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -899,7 +937,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "avgb_u.sn", TILEPRO_OPC_AVGB_U_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -918,7 +956,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "avgh", TILEPRO_OPC_AVGH, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -937,7 +975,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "avgh.sn", TILEPRO_OPC_AVGH_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -956,7 +994,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bbns", TILEPRO_OPC_BBNS, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -975,7 +1013,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bbns.sn", TILEPRO_OPC_BBNS_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -994,7 +1032,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bbnst", TILEPRO_OPC_BBNST, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1013,7 +1051,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bbnst.sn", TILEPRO_OPC_BBNST_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1032,7 +1070,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bbs", TILEPRO_OPC_BBS, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1051,7 +1089,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bbs.sn", TILEPRO_OPC_BBS_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1070,7 +1108,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bbst", TILEPRO_OPC_BBST, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1089,7 +1127,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bbst.sn", TILEPRO_OPC_BBST_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1108,7 +1146,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bgez", TILEPRO_OPC_BGEZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1127,7 +1165,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bgez.sn", TILEPRO_OPC_BGEZ_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1146,7 +1184,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bgezt", TILEPRO_OPC_BGEZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1165,7 +1203,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bgezt.sn", TILEPRO_OPC_BGEZT_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1184,7 +1222,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bgz", TILEPRO_OPC_BGZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1203,7 +1241,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bgz.sn", TILEPRO_OPC_BGZ_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1222,7 +1260,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bgzt", TILEPRO_OPC_BGZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1241,7 +1279,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bgzt.sn", TILEPRO_OPC_BGZT_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1260,7 +1298,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bitx", TILEPRO_OPC_BITX, 0x5, 2, TREG_ZERO, 1,
- { { 7, 8 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
+ { { 9, 10 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -1279,7 +1317,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bitx.sn", TILEPRO_OPC_BITX_SN, 0x1, 2, TREG_SN, 1,
- { { 7, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -1298,7 +1336,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "blez", TILEPRO_OPC_BLEZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1317,7 +1355,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "blez.sn", TILEPRO_OPC_BLEZ_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1336,7 +1374,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "blezt", TILEPRO_OPC_BLEZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1355,7 +1393,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "blezt.sn", TILEPRO_OPC_BLEZT_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1374,7 +1412,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "blz", TILEPRO_OPC_BLZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1393,7 +1431,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "blz.sn", TILEPRO_OPC_BLZ_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1412,7 +1450,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "blzt", TILEPRO_OPC_BLZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1431,7 +1469,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "blzt.sn", TILEPRO_OPC_BLZT_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1450,7 +1488,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bnz", TILEPRO_OPC_BNZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1469,7 +1507,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bnz.sn", TILEPRO_OPC_BNZ_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1488,7 +1526,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bnzt", TILEPRO_OPC_BNZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1507,7 +1545,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bnzt.sn", TILEPRO_OPC_BNZT_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1526,7 +1564,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bytex", TILEPRO_OPC_BYTEX, 0x5, 2, TREG_ZERO, 1,
- { { 7, 8 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
+ { { 9, 10 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -1545,7 +1583,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bytex.sn", TILEPRO_OPC_BYTEX_SN, 0x1, 2, TREG_SN, 1,
- { { 7, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -1564,7 +1602,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bz", TILEPRO_OPC_BZ, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1583,7 +1621,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bz.sn", TILEPRO_OPC_BZ_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1602,7 +1640,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bzt", TILEPRO_OPC_BZT, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1621,7 +1659,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "bzt.sn", TILEPRO_OPC_BZT_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 10, 20 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1640,7 +1678,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "clz", TILEPRO_OPC_CLZ, 0x5, 2, TREG_ZERO, 1,
- { { 7, 8 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
+ { { 9, 10 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -1659,7 +1697,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "clz.sn", TILEPRO_OPC_CLZ_SN, 0x1, 2, TREG_SN, 1,
- { { 7, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -1678,7 +1716,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "crc32_32", TILEPRO_OPC_CRC32_32, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -1697,7 +1735,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "crc32_32.sn", TILEPRO_OPC_CRC32_32_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -1716,7 +1754,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "crc32_8", TILEPRO_OPC_CRC32_8, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -1735,7 +1773,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "crc32_8.sn", TILEPRO_OPC_CRC32_8_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -1754,7 +1792,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "ctz", TILEPRO_OPC_CTZ, 0x5, 2, TREG_ZERO, 1,
- { { 7, 8 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
+ { { 9, 10 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -1773,7 +1811,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "ctz.sn", TILEPRO_OPC_CTZ_SN, 0x1, 2, TREG_SN, 1,
- { { 7, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -1811,7 +1849,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "dtlbpr", TILEPRO_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1830,7 +1868,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "dword_align", TILEPRO_OPC_DWORD_ALIGN, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -1849,7 +1887,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "dword_align.sn", TILEPRO_OPC_DWORD_ALIGN_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -1868,7 +1906,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "finv", TILEPRO_OPC_FINV, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1887,7 +1925,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "flush", TILEPRO_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1925,7 +1963,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "icoh", TILEPRO_OPC_ICOH, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -1963,7 +2001,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "inthb", TILEPRO_OPC_INTHB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -1982,7 +2020,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "inthb.sn", TILEPRO_OPC_INTHB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2001,7 +2039,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "inthh", TILEPRO_OPC_INTHH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2020,7 +2058,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "inthh.sn", TILEPRO_OPC_INTHH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2039,7 +2077,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "intlb", TILEPRO_OPC_INTLB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2058,7 +2096,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "intlb.sn", TILEPRO_OPC_INTLB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2077,7 +2115,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "intlh", TILEPRO_OPC_INTLH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2096,7 +2134,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "intlh.sn", TILEPRO_OPC_INTLH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2115,7 +2153,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "inv", TILEPRO_OPC_INV, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2191,7 +2229,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "jalr", TILEPRO_OPC_JALR, 0x2, 1, TREG_LR, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2210,7 +2248,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "jalrp", TILEPRO_OPC_JALRP, 0x2, 1, TREG_LR, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2267,7 +2305,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "jr", TILEPRO_OPC_JR, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2286,7 +2324,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "jrp", TILEPRO_OPC_JRP, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2305,7 +2343,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lb", TILEPRO_OPC_LB, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 23, 15 } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 23, 15 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2324,7 +2362,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lb.sn", TILEPRO_OPC_LB_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2343,7 +2381,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lb_u", TILEPRO_OPC_LB_U, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 23, 15 } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 23, 15 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2362,7 +2400,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lb_u.sn", TILEPRO_OPC_LB_U_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2381,7 +2419,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lbadd", TILEPRO_OPC_LBADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2400,7 +2438,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lbadd.sn", TILEPRO_OPC_LBADD_SN, 0x2, 3, TREG_SN, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2419,7 +2457,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lbadd_u", TILEPRO_OPC_LBADD_U, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2438,7 +2476,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lbadd_u.sn", TILEPRO_OPC_LBADD_U_SN, 0x2, 3, TREG_SN, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2457,7 +2495,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lh", TILEPRO_OPC_LH, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 23, 15 } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 23, 15 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2476,7 +2514,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lh.sn", TILEPRO_OPC_LH_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2495,7 +2533,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lh_u", TILEPRO_OPC_LH_U, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 23, 15 } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 23, 15 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2514,7 +2552,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lh_u.sn", TILEPRO_OPC_LH_U_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2533,7 +2571,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lhadd", TILEPRO_OPC_LHADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2552,7 +2590,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lhadd.sn", TILEPRO_OPC_LHADD_SN, 0x2, 3, TREG_SN, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2571,7 +2609,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lhadd_u", TILEPRO_OPC_LHADD_U, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2590,7 +2628,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lhadd_u.sn", TILEPRO_OPC_LHADD_U_SN, 0x2, 3, TREG_SN, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2609,7 +2647,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lnk", TILEPRO_OPC_LNK, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2628,7 +2666,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lnk.sn", TILEPRO_OPC_LNK_SN, 0x2, 1, TREG_SN, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2647,7 +2685,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lw", TILEPRO_OPC_LW, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 23, 15 } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 23, 15 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2666,7 +2704,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lw.sn", TILEPRO_OPC_LW_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2685,7 +2723,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lw_na", TILEPRO_OPC_LW_NA, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2704,7 +2742,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lw_na.sn", TILEPRO_OPC_LW_NA_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2723,7 +2761,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lwadd", TILEPRO_OPC_LWADD, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2742,7 +2780,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lwadd.sn", TILEPRO_OPC_LWADD_SN, 0x2, 3, TREG_SN, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2761,7 +2799,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lwadd_na", TILEPRO_OPC_LWADD_NA, 0x2, 3, TREG_ZERO, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2780,7 +2818,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "lwadd_na.sn", TILEPRO_OPC_LWADD_NA_SN, 0x2, 3, TREG_SN, 1,
- { { 0, }, { 9, 24, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2799,7 +2837,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "maxb_u", TILEPRO_OPC_MAXB_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2818,7 +2856,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "maxb_u.sn", TILEPRO_OPC_MAXB_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2837,7 +2875,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "maxh", TILEPRO_OPC_MAXH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2856,7 +2894,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "maxh.sn", TILEPRO_OPC_MAXH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -2875,7 +2913,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "maxib_u", TILEPRO_OPC_MAXIB_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -2894,7 +2932,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "maxib_u.sn", TILEPRO_OPC_MAXIB_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -2913,7 +2951,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "maxih", TILEPRO_OPC_MAXIH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -2932,7 +2970,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "maxih.sn", TILEPRO_OPC_MAXIH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -2970,7 +3008,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mfspr", TILEPRO_OPC_MFSPR, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 25 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 25 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -2989,7 +3027,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "minb_u", TILEPRO_OPC_MINB_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3008,7 +3046,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "minb_u.sn", TILEPRO_OPC_MINB_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3027,7 +3065,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "minh", TILEPRO_OPC_MINH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3046,7 +3084,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "minh.sn", TILEPRO_OPC_MINH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3065,7 +3103,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "minib_u", TILEPRO_OPC_MINIB_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -3084,7 +3122,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "minib_u.sn", TILEPRO_OPC_MINIB_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -3103,7 +3141,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "minih", TILEPRO_OPC_MINIH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -3122,7 +3160,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "minih.sn", TILEPRO_OPC_MINIH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -3141,7 +3179,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mm", TILEPRO_OPC_MM, 0x3, 5, TREG_ZERO, 1,
- { { 7, 8, 16, 26, 27 }, { 9, 10, 17, 28, 29 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16, 26, 27 }, { 7, 8, 17, 28, 29 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x8000000070000000ULL,
@@ -3160,7 +3198,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mnz", TILEPRO_OPC_MNZ, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3179,7 +3217,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mnz.sn", TILEPRO_OPC_MNZ_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3198,7 +3236,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mnzb", TILEPRO_OPC_MNZB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3217,7 +3255,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mnzb.sn", TILEPRO_OPC_MNZB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3236,7 +3274,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mnzh", TILEPRO_OPC_MNZH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3255,7 +3293,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mnzh.sn", TILEPRO_OPC_MNZH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3274,7 +3312,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mtspr", TILEPRO_OPC_MTSPR, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 30, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 30, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -3293,7 +3331,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhh_ss", TILEPRO_OPC_MULHH_SS, 0x5, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3312,7 +3350,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhh_ss.sn", TILEPRO_OPC_MULHH_SS_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3331,7 +3369,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhh_su", TILEPRO_OPC_MULHH_SU, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3350,7 +3388,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhh_su.sn", TILEPRO_OPC_MULHH_SU_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3369,7 +3407,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhh_uu", TILEPRO_OPC_MULHH_UU, 0x5, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3388,7 +3426,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhh_uu.sn", TILEPRO_OPC_MULHH_UU_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3407,7 +3445,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhha_ss", TILEPRO_OPC_MULHHA_SS, 0x5, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3426,7 +3464,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhha_ss.sn", TILEPRO_OPC_MULHHA_SS_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3445,7 +3483,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhha_su", TILEPRO_OPC_MULHHA_SU, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3464,7 +3502,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhha_su.sn", TILEPRO_OPC_MULHHA_SU_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3483,7 +3521,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhha_uu", TILEPRO_OPC_MULHHA_UU, 0x5, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3502,7 +3540,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhha_uu.sn", TILEPRO_OPC_MULHHA_UU_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3521,7 +3559,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhhsa_uu", TILEPRO_OPC_MULHHSA_UU, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3540,7 +3578,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhhsa_uu.sn", TILEPRO_OPC_MULHHSA_UU_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3559,7 +3597,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhl_ss", TILEPRO_OPC_MULHL_SS, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3578,7 +3616,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhl_ss.sn", TILEPRO_OPC_MULHL_SS_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3597,7 +3635,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhl_su", TILEPRO_OPC_MULHL_SU, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3616,7 +3654,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhl_su.sn", TILEPRO_OPC_MULHL_SU_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3635,7 +3673,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhl_us", TILEPRO_OPC_MULHL_US, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3654,7 +3692,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhl_us.sn", TILEPRO_OPC_MULHL_US_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3673,7 +3711,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhl_uu", TILEPRO_OPC_MULHL_UU, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3692,7 +3730,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhl_uu.sn", TILEPRO_OPC_MULHL_UU_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3711,7 +3749,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhla_ss", TILEPRO_OPC_MULHLA_SS, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3730,7 +3768,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhla_ss.sn", TILEPRO_OPC_MULHLA_SS_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3749,7 +3787,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhla_su", TILEPRO_OPC_MULHLA_SU, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3768,7 +3806,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhla_su.sn", TILEPRO_OPC_MULHLA_SU_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3787,7 +3825,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhla_us", TILEPRO_OPC_MULHLA_US, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3806,7 +3844,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhla_us.sn", TILEPRO_OPC_MULHLA_US_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3825,7 +3863,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhla_uu", TILEPRO_OPC_MULHLA_UU, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3844,7 +3882,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhla_uu.sn", TILEPRO_OPC_MULHLA_UU_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3863,7 +3901,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhlsa_uu", TILEPRO_OPC_MULHLSA_UU, 0x5, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3882,7 +3920,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulhlsa_uu.sn", TILEPRO_OPC_MULHLSA_UU_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3901,7 +3939,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulll_ss", TILEPRO_OPC_MULLL_SS, 0x5, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3920,7 +3958,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulll_ss.sn", TILEPRO_OPC_MULLL_SS_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3939,7 +3977,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulll_su", TILEPRO_OPC_MULLL_SU, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3958,7 +3996,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulll_su.sn", TILEPRO_OPC_MULLL_SU_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3977,7 +4015,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulll_uu", TILEPRO_OPC_MULLL_UU, 0x5, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -3996,7 +4034,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulll_uu.sn", TILEPRO_OPC_MULLL_UU_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4015,7 +4053,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mullla_ss", TILEPRO_OPC_MULLLA_SS, 0x5, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4034,7 +4072,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mullla_ss.sn", TILEPRO_OPC_MULLLA_SS_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4053,7 +4091,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mullla_su", TILEPRO_OPC_MULLLA_SU, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4072,7 +4110,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mullla_su.sn", TILEPRO_OPC_MULLLA_SU_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4091,7 +4129,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mullla_uu", TILEPRO_OPC_MULLLA_UU, 0x5, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4110,7 +4148,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mullla_uu.sn", TILEPRO_OPC_MULLLA_UU_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4129,7 +4167,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulllsa_uu", TILEPRO_OPC_MULLLSA_UU, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4148,7 +4186,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mulllsa_uu.sn", TILEPRO_OPC_MULLLSA_UU_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4167,7 +4205,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mvnz", TILEPRO_OPC_MVNZ, 0x5, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4186,7 +4224,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mvnz.sn", TILEPRO_OPC_MVNZ_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4205,7 +4243,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mvz", TILEPRO_OPC_MVZ, 0x5, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4224,7 +4262,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mvz.sn", TILEPRO_OPC_MVZ_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4243,7 +4281,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mz", TILEPRO_OPC_MZ, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4262,7 +4300,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mz.sn", TILEPRO_OPC_MZ_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4281,7 +4319,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mzb", TILEPRO_OPC_MZB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4300,7 +4338,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mzb.sn", TILEPRO_OPC_MZB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4319,7 +4357,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mzh", TILEPRO_OPC_MZH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4338,7 +4376,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "mzh.sn", TILEPRO_OPC_MZH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4395,7 +4433,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "nor", TILEPRO_OPC_NOR, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4414,7 +4452,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "nor.sn", TILEPRO_OPC_NOR_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4433,7 +4471,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "or", TILEPRO_OPC_OR, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4452,7 +4490,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "or.sn", TILEPRO_OPC_OR_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4471,7 +4509,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "ori", TILEPRO_OPC_ORI, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -4490,7 +4528,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "ori.sn", TILEPRO_OPC_ORI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -4509,7 +4547,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "packbs_u", TILEPRO_OPC_PACKBS_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4528,7 +4566,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "packbs_u.sn", TILEPRO_OPC_PACKBS_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4547,7 +4585,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "packhb", TILEPRO_OPC_PACKHB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4566,7 +4604,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "packhb.sn", TILEPRO_OPC_PACKHB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4585,7 +4623,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "packhs", TILEPRO_OPC_PACKHS, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4604,7 +4642,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "packhs.sn", TILEPRO_OPC_PACKHS_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4623,7 +4661,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "packlb", TILEPRO_OPC_PACKLB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4642,7 +4680,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "packlb.sn", TILEPRO_OPC_PACKLB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4661,7 +4699,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "pcnt", TILEPRO_OPC_PCNT, 0x5, 2, TREG_ZERO, 1,
- { { 7, 8 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
+ { { 9, 10 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -4680,7 +4718,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "pcnt.sn", TILEPRO_OPC_PCNT_SN, 0x1, 2, TREG_SN, 1,
- { { 7, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -4699,7 +4737,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "rl", TILEPRO_OPC_RL, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4718,7 +4756,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "rl.sn", TILEPRO_OPC_RL_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4737,7 +4775,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "rli", TILEPRO_OPC_RLI, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -4756,7 +4794,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "rli.sn", TILEPRO_OPC_RLI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -4775,7 +4813,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "s1a", TILEPRO_OPC_S1A, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4794,7 +4832,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "s1a.sn", TILEPRO_OPC_S1A_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4813,7 +4851,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "s2a", TILEPRO_OPC_S2A, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4832,7 +4870,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "s2a.sn", TILEPRO_OPC_S2A_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4851,7 +4889,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "s3a", TILEPRO_OPC_S3A, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4870,7 +4908,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "s3a.sn", TILEPRO_OPC_S3A_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4889,7 +4927,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadab_u", TILEPRO_OPC_SADAB_U, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4908,7 +4946,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadab_u.sn", TILEPRO_OPC_SADAB_U_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4927,7 +4965,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadah", TILEPRO_OPC_SADAH, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4946,7 +4984,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadah.sn", TILEPRO_OPC_SADAH_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4965,7 +5003,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadah_u", TILEPRO_OPC_SADAH_U, 0x1, 3, TREG_ZERO, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -4984,7 +5022,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadah_u.sn", TILEPRO_OPC_SADAH_U_SN, 0x1, 3, TREG_SN, 1,
- { { 21, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5003,7 +5041,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadb_u", TILEPRO_OPC_SADB_U, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5022,7 +5060,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadb_u.sn", TILEPRO_OPC_SADB_U_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5041,7 +5079,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadh", TILEPRO_OPC_SADH, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5060,7 +5098,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadh.sn", TILEPRO_OPC_SADH_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5079,7 +5117,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadh_u", TILEPRO_OPC_SADH_U, 0x1, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5098,7 +5136,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sadh_u.sn", TILEPRO_OPC_SADH_U_SN, 0x1, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5117,7 +5155,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sb", TILEPRO_OPC_SB, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 17 }, { 0, }, { 0, }, { 15, 36 } },
+ { { 0, }, { 8, 17 }, { 0, }, { 0, }, { 15, 36 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -5155,7 +5193,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seq", TILEPRO_OPC_SEQ, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5174,7 +5212,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seq.sn", TILEPRO_OPC_SEQ_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5193,7 +5231,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seqb", TILEPRO_OPC_SEQB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5212,7 +5250,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seqb.sn", TILEPRO_OPC_SEQB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5231,7 +5269,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seqh", TILEPRO_OPC_SEQH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5250,7 +5288,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seqh.sn", TILEPRO_OPC_SEQH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5269,7 +5307,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seqi", TILEPRO_OPC_SEQI, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -5288,7 +5326,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seqi.sn", TILEPRO_OPC_SEQI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -5307,7 +5345,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seqib", TILEPRO_OPC_SEQIB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -5326,7 +5364,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seqib.sn", TILEPRO_OPC_SEQIB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -5345,7 +5383,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seqih", TILEPRO_OPC_SEQIH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -5364,7 +5402,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "seqih.sn", TILEPRO_OPC_SEQIH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -5383,7 +5421,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sh", TILEPRO_OPC_SH, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 17 }, { 0, }, { 0, }, { 15, 36 } },
+ { { 0, }, { 8, 17 }, { 0, }, { 0, }, { 15, 36 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -5421,7 +5459,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shl", TILEPRO_OPC_SHL, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5440,7 +5478,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shl.sn", TILEPRO_OPC_SHL_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5459,7 +5497,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shlb", TILEPRO_OPC_SHLB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5478,7 +5516,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shlb.sn", TILEPRO_OPC_SHLB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5497,7 +5535,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shlh", TILEPRO_OPC_SHLH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5516,7 +5554,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shlh.sn", TILEPRO_OPC_SHLH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5535,7 +5573,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shli", TILEPRO_OPC_SHLI, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5554,7 +5592,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shli.sn", TILEPRO_OPC_SHLI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5573,7 +5611,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shlib", TILEPRO_OPC_SHLIB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5592,7 +5630,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shlib.sn", TILEPRO_OPC_SHLIB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5611,7 +5649,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shlih", TILEPRO_OPC_SHLIH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5630,7 +5668,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shlih.sn", TILEPRO_OPC_SHLIH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5649,7 +5687,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shr", TILEPRO_OPC_SHR, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5668,7 +5706,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shr.sn", TILEPRO_OPC_SHR_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5687,7 +5725,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shrb", TILEPRO_OPC_SHRB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5706,7 +5744,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shrb.sn", TILEPRO_OPC_SHRB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5725,7 +5763,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shrh", TILEPRO_OPC_SHRH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5744,7 +5782,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shrh.sn", TILEPRO_OPC_SHRH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5763,7 +5801,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shri", TILEPRO_OPC_SHRI, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5782,7 +5820,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shri.sn", TILEPRO_OPC_SHRI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5801,7 +5839,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shrib", TILEPRO_OPC_SHRIB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5820,7 +5858,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shrib.sn", TILEPRO_OPC_SHRIB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5839,7 +5877,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shrih", TILEPRO_OPC_SHRIH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5858,7 +5896,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "shrih.sn", TILEPRO_OPC_SHRIH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -5877,7 +5915,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slt", TILEPRO_OPC_SLT, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5896,7 +5934,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slt.sn", TILEPRO_OPC_SLT_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5915,7 +5953,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slt_u", TILEPRO_OPC_SLT_U, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5934,7 +5972,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slt_u.sn", TILEPRO_OPC_SLT_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5953,7 +5991,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltb", TILEPRO_OPC_SLTB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5972,7 +6010,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltb.sn", TILEPRO_OPC_SLTB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -5991,7 +6029,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltb_u", TILEPRO_OPC_SLTB_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6010,7 +6048,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltb_u.sn", TILEPRO_OPC_SLTB_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6029,7 +6067,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slte", TILEPRO_OPC_SLTE, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6048,7 +6086,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slte.sn", TILEPRO_OPC_SLTE_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6067,7 +6105,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slte_u", TILEPRO_OPC_SLTE_U, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6086,7 +6124,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slte_u.sn", TILEPRO_OPC_SLTE_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6105,7 +6143,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slteb", TILEPRO_OPC_SLTEB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6124,7 +6162,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slteb.sn", TILEPRO_OPC_SLTEB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6143,7 +6181,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slteb_u", TILEPRO_OPC_SLTEB_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6162,7 +6200,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slteb_u.sn", TILEPRO_OPC_SLTEB_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6181,7 +6219,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slteh", TILEPRO_OPC_SLTEH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6200,7 +6238,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slteh.sn", TILEPRO_OPC_SLTEH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6219,7 +6257,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slteh_u", TILEPRO_OPC_SLTEH_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6238,7 +6276,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slteh_u.sn", TILEPRO_OPC_SLTEH_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6257,7 +6295,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slth", TILEPRO_OPC_SLTH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6276,7 +6314,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slth.sn", TILEPRO_OPC_SLTH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6295,7 +6333,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slth_u", TILEPRO_OPC_SLTH_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6314,7 +6352,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slth_u.sn", TILEPRO_OPC_SLTH_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6333,7 +6371,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slti", TILEPRO_OPC_SLTI, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6352,7 +6390,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slti.sn", TILEPRO_OPC_SLTI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6371,7 +6409,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slti_u", TILEPRO_OPC_SLTI_U, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6390,7 +6428,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "slti_u.sn", TILEPRO_OPC_SLTI_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6409,7 +6447,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltib", TILEPRO_OPC_SLTIB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6428,7 +6466,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltib.sn", TILEPRO_OPC_SLTIB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6447,7 +6485,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltib_u", TILEPRO_OPC_SLTIB_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6466,7 +6504,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltib_u.sn", TILEPRO_OPC_SLTIB_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6485,7 +6523,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltih", TILEPRO_OPC_SLTIH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6504,7 +6542,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltih.sn", TILEPRO_OPC_SLTIH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6523,7 +6561,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltih_u", TILEPRO_OPC_SLTIH_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6542,7 +6580,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sltih_u.sn", TILEPRO_OPC_SLTIH_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -6561,7 +6599,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sne", TILEPRO_OPC_SNE, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6580,7 +6618,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sne.sn", TILEPRO_OPC_SNE_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6599,7 +6637,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sneb", TILEPRO_OPC_SNEB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6618,7 +6656,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sneb.sn", TILEPRO_OPC_SNEB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6637,7 +6675,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sneh", TILEPRO_OPC_SNEH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6656,7 +6694,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sneh.sn", TILEPRO_OPC_SNEH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6675,7 +6713,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sra", TILEPRO_OPC_SRA, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6694,7 +6732,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sra.sn", TILEPRO_OPC_SRA_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6713,7 +6751,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "srab", TILEPRO_OPC_SRAB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6732,7 +6770,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "srab.sn", TILEPRO_OPC_SRAB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6751,7 +6789,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "srah", TILEPRO_OPC_SRAH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6770,7 +6808,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "srah.sn", TILEPRO_OPC_SRAH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6789,7 +6827,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "srai", TILEPRO_OPC_SRAI, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -6808,7 +6846,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "srai.sn", TILEPRO_OPC_SRAI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -6827,7 +6865,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sraib", TILEPRO_OPC_SRAIB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -6846,7 +6884,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sraib.sn", TILEPRO_OPC_SRAIB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -6865,7 +6903,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sraih", TILEPRO_OPC_SRAIH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -6884,7 +6922,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sraih.sn", TILEPRO_OPC_SRAIH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 32 }, { 9, 10, 33 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffe0000ULL,
@@ -6903,7 +6941,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sub", TILEPRO_OPC_SUB, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6922,7 +6960,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sub.sn", TILEPRO_OPC_SUB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6941,7 +6979,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "subb", TILEPRO_OPC_SUBB, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6960,7 +6998,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "subb.sn", TILEPRO_OPC_SUBB_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6979,7 +7017,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "subbs_u", TILEPRO_OPC_SUBBS_U, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -6998,7 +7036,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "subbs_u.sn", TILEPRO_OPC_SUBBS_U_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -7017,7 +7055,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "subh", TILEPRO_OPC_SUBH, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -7036,7 +7074,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "subh.sn", TILEPRO_OPC_SUBH_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -7055,7 +7093,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "subhs", TILEPRO_OPC_SUBHS, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -7074,7 +7112,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "subhs.sn", TILEPRO_OPC_SUBHS_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -7093,7 +7131,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "subs", TILEPRO_OPC_SUBS, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -7112,7 +7150,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "subs.sn", TILEPRO_OPC_SUBS_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -7131,7 +7169,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "sw", TILEPRO_OPC_SW, 0x12, 2, TREG_ZERO, 1,
- { { 0, }, { 10, 17 }, { 0, }, { 0, }, { 15, 36 } },
+ { { 0, }, { 8, 17 }, { 0, }, { 0, }, { 15, 36 } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -7245,7 +7283,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "tblidxb0", TILEPRO_OPC_TBLIDXB0, 0x5, 2, TREG_ZERO, 1,
- { { 21, 8 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
+ { { 21, 10 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -7264,7 +7302,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "tblidxb0.sn", TILEPRO_OPC_TBLIDXB0_SN, 0x1, 2, TREG_SN, 1,
- { { 21, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -7283,7 +7321,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "tblidxb1", TILEPRO_OPC_TBLIDXB1, 0x5, 2, TREG_ZERO, 1,
- { { 21, 8 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
+ { { 21, 10 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -7302,7 +7340,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "tblidxb1.sn", TILEPRO_OPC_TBLIDXB1_SN, 0x1, 2, TREG_SN, 1,
- { { 21, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -7321,7 +7359,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "tblidxb2", TILEPRO_OPC_TBLIDXB2, 0x5, 2, TREG_ZERO, 1,
- { { 21, 8 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
+ { { 21, 10 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -7340,7 +7378,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "tblidxb2.sn", TILEPRO_OPC_TBLIDXB2_SN, 0x1, 2, TREG_SN, 1,
- { { 21, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -7359,7 +7397,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "tblidxb3", TILEPRO_OPC_TBLIDXB3, 0x5, 2, TREG_ZERO, 1,
- { { 21, 8 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
+ { { 21, 10 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -7378,7 +7416,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "tblidxb3.sn", TILEPRO_OPC_TBLIDXB3_SN, 0x1, 2, TREG_SN, 1,
- { { 21, 8 }, { 0, }, { 0, }, { 0, }, { 0, } },
+ { { 21, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffff000ULL,
@@ -7397,7 +7435,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "tns", TILEPRO_OPC_TNS, 0x2, 2, TREG_ZERO, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -7416,7 +7454,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "tns.sn", TILEPRO_OPC_TNS_SN, 0x2, 2, TREG_SN, 1,
- { { 0, }, { 9, 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -7435,7 +7473,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "wh64", TILEPRO_OPC_WH64, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
@@ -7454,7 +7492,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "xor", TILEPRO_OPC_XOR, 0xf, 3, TREG_ZERO, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -7473,7 +7511,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "xor.sn", TILEPRO_OPC_XOR_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 16 }, { 9, 10, 17 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ffc0000ULL,
@@ -7492,7 +7530,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "xori", TILEPRO_OPC_XORI, 0x3, 3, TREG_ZERO, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -7511,7 +7549,7 @@ const struct tilepro_opcode tilepro_opcodes[395] =
#endif
},
{ "xori.sn", TILEPRO_OPC_XORI_SN, 0x3, 3, TREG_SN, 1,
- { { 7, 8, 0 }, { 9, 10, 1 }, { 0, }, { 0, }, { 0, } },
+ { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0x800000007ff00000ULL,
@@ -7935,7 +7973,7 @@ static const unsigned short decode_X0_fsm[1153] =
TILEPRO_OPC_TBLIDXB3_SN, TILEPRO_OPC_NONE,
};
-static const unsigned short decode_X1_fsm[1540] =
+static const unsigned short decode_X1_fsm[1580] =
{
BITFIELD(54, 9) /* index 0 */,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
@@ -7979,7 +8017,7 @@ static const unsigned short decode_X1_fsm[1540] =
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
- CHILD(941), CHILD(950), CHILD(974), CHILD(983), TILEPRO_OPC_NONE,
+ CHILD(961), CHILD(970), CHILD(994), CHILD(1003), TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_MM,
@@ -7990,11 +8028,11 @@ static const unsigned short decode_X1_fsm[1540] =
TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
- TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, CHILD(992),
+ TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, CHILD(1032),
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
- TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(1334),
+ TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(1374),
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
@@ -8223,43 +8261,62 @@ static const unsigned short decode_X1_fsm[1540] =
TILEPRO_OPC_SLTI, TILEPRO_OPC_SLTI_U, TILEPRO_OPC_XORI, TILEPRO_OPC_LBADD,
TILEPRO_OPC_LBADD_U,
BITFIELD(51, 3) /* index 932 */,
- TILEPRO_OPC_LHADD, TILEPRO_OPC_LHADD_U, TILEPRO_OPC_LWADD,
- TILEPRO_OPC_LWADD_NA, TILEPRO_OPC_SBADD, TILEPRO_OPC_SHADD,
- TILEPRO_OPC_SWADD, TILEPRO_OPC_NONE,
- BITFIELD(51, 3) /* index 941 */,
+ TILEPRO_OPC_LHADD, TILEPRO_OPC_LHADD_U, CHILD(941), TILEPRO_OPC_LWADD_NA,
+ TILEPRO_OPC_SBADD, TILEPRO_OPC_SHADD, TILEPRO_OPC_SWADD, TILEPRO_OPC_NONE,
+ BITFIELD(43, 2) /* index 941 */,
+ CHILD(946), TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD,
+ BITFIELD(45, 2) /* index 946 */,
+ CHILD(951), TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD,
+ BITFIELD(47, 2) /* index 951 */,
+ CHILD(956), TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD,
+ BITFIELD(49, 2) /* index 956 */,
+ TILEPRO_OPC_LW_TLS, TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD,
+ BITFIELD(51, 3) /* index 961 */,
TILEPRO_OPC_NONE, TILEPRO_OPC_ADDIB_SN, TILEPRO_OPC_ADDIH_SN,
TILEPRO_OPC_ADDI_SN, TILEPRO_OPC_ANDI_SN, TILEPRO_OPC_MAXIB_U_SN,
TILEPRO_OPC_MAXIH_SN, TILEPRO_OPC_MFSPR,
- BITFIELD(51, 3) /* index 950 */,
- TILEPRO_OPC_MINIB_U_SN, TILEPRO_OPC_MINIH_SN, TILEPRO_OPC_MTSPR, CHILD(959),
+ BITFIELD(51, 3) /* index 970 */,
+ TILEPRO_OPC_MINIB_U_SN, TILEPRO_OPC_MINIH_SN, TILEPRO_OPC_MTSPR, CHILD(979),
TILEPRO_OPC_SEQIB_SN, TILEPRO_OPC_SEQIH_SN, TILEPRO_OPC_SEQI_SN,
TILEPRO_OPC_SLTIB_SN,
- BITFIELD(37, 2) /* index 959 */,
- TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, CHILD(964),
- BITFIELD(39, 2) /* index 964 */,
- TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, CHILD(969),
- BITFIELD(41, 2) /* index 969 */,
+ BITFIELD(37, 2) /* index 979 */,
+ TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, CHILD(984),
+ BITFIELD(39, 2) /* index 984 */,
+ TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, CHILD(989),
+ BITFIELD(41, 2) /* index 989 */,
TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN,
TILEPRO_OPC_MOVEI_SN,
- BITFIELD(51, 3) /* index 974 */,
+ BITFIELD(51, 3) /* index 994 */,
TILEPRO_OPC_SLTIB_U_SN, TILEPRO_OPC_SLTIH_SN, TILEPRO_OPC_SLTIH_U_SN,
TILEPRO_OPC_SLTI_SN, TILEPRO_OPC_SLTI_U_SN, TILEPRO_OPC_XORI_SN,
TILEPRO_OPC_LBADD_SN, TILEPRO_OPC_LBADD_U_SN,
- BITFIELD(51, 3) /* index 983 */,
- TILEPRO_OPC_LHADD_SN, TILEPRO_OPC_LHADD_U_SN, TILEPRO_OPC_LWADD_SN,
+ BITFIELD(51, 3) /* index 1003 */,
+ TILEPRO_OPC_LHADD_SN, TILEPRO_OPC_LHADD_U_SN, CHILD(1012),
TILEPRO_OPC_LWADD_NA_SN, TILEPRO_OPC_SBADD, TILEPRO_OPC_SHADD,
TILEPRO_OPC_SWADD, TILEPRO_OPC_NONE,
- BITFIELD(46, 7) /* index 992 */,
+ BITFIELD(43, 2) /* index 1012 */,
+ CHILD(1017), TILEPRO_OPC_LWADD_SN, TILEPRO_OPC_LWADD_SN,
+ TILEPRO_OPC_LWADD_SN,
+ BITFIELD(45, 2) /* index 1017 */,
+ CHILD(1022), TILEPRO_OPC_LWADD_SN, TILEPRO_OPC_LWADD_SN,
+ TILEPRO_OPC_LWADD_SN,
+ BITFIELD(47, 2) /* index 1022 */,
+ CHILD(1027), TILEPRO_OPC_LWADD_SN, TILEPRO_OPC_LWADD_SN,
+ TILEPRO_OPC_LWADD_SN,
+ BITFIELD(49, 2) /* index 1027 */,
+ TILEPRO_OPC_LW_TLS_SN, TILEPRO_OPC_LWADD_SN, TILEPRO_OPC_LWADD_SN,
+ TILEPRO_OPC_LWADD_SN,
+ BITFIELD(46, 7) /* index 1032 */,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
- CHILD(1121), CHILD(1121), CHILD(1121), CHILD(1121), CHILD(1124),
- CHILD(1124), CHILD(1124), CHILD(1124), CHILD(1127), CHILD(1127),
- CHILD(1127), CHILD(1127), CHILD(1130), CHILD(1130), CHILD(1130),
- CHILD(1130), CHILD(1133), CHILD(1133), CHILD(1133), CHILD(1133),
- CHILD(1136), CHILD(1136), CHILD(1136), CHILD(1136), CHILD(1139),
- CHILD(1139), CHILD(1139), CHILD(1139), CHILD(1142), CHILD(1142),
- CHILD(1142), CHILD(1142), CHILD(1145), CHILD(1145), CHILD(1145),
- CHILD(1145), CHILD(1148), CHILD(1148), CHILD(1148), CHILD(1148),
- CHILD(1151), CHILD(1242), CHILD(1290), CHILD(1323), TILEPRO_OPC_NONE,
+ CHILD(1161), CHILD(1161), CHILD(1161), CHILD(1161), CHILD(1164),
+ CHILD(1164), CHILD(1164), CHILD(1164), CHILD(1167), CHILD(1167),
+ CHILD(1167), CHILD(1167), CHILD(1170), CHILD(1170), CHILD(1170),
+ CHILD(1170), CHILD(1173), CHILD(1173), CHILD(1173), CHILD(1173),
+ CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1179),
+ CHILD(1179), CHILD(1179), CHILD(1179), CHILD(1182), CHILD(1182),
+ CHILD(1182), CHILD(1182), CHILD(1185), CHILD(1185), CHILD(1185),
+ CHILD(1185), CHILD(1188), CHILD(1188), CHILD(1188), CHILD(1188),
+ CHILD(1191), CHILD(1282), CHILD(1330), CHILD(1363), TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
@@ -8280,130 +8337,130 @@ static const unsigned short decode_X1_fsm[1540] =
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1121 */,
+ BITFIELD(53, 1) /* index 1161 */,
TILEPRO_OPC_RLI, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1124 */,
+ BITFIELD(53, 1) /* index 1164 */,
TILEPRO_OPC_SHLIB, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1127 */,
+ BITFIELD(53, 1) /* index 1167 */,
TILEPRO_OPC_SHLIH, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1130 */,
+ BITFIELD(53, 1) /* index 1170 */,
TILEPRO_OPC_SHLI, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1133 */,
+ BITFIELD(53, 1) /* index 1173 */,
TILEPRO_OPC_SHRIB, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1136 */,
+ BITFIELD(53, 1) /* index 1176 */,
TILEPRO_OPC_SHRIH, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1139 */,
+ BITFIELD(53, 1) /* index 1179 */,
TILEPRO_OPC_SHRI, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1142 */,
+ BITFIELD(53, 1) /* index 1182 */,
TILEPRO_OPC_SRAIB, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1145 */,
+ BITFIELD(53, 1) /* index 1185 */,
TILEPRO_OPC_SRAIH, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1148 */,
+ BITFIELD(53, 1) /* index 1188 */,
TILEPRO_OPC_SRAI, TILEPRO_OPC_NONE,
- BITFIELD(43, 3) /* index 1151 */,
- TILEPRO_OPC_NONE, CHILD(1160), CHILD(1163), CHILD(1166), CHILD(1169),
- CHILD(1172), CHILD(1175), CHILD(1178),
- BITFIELD(53, 1) /* index 1160 */,
+ BITFIELD(43, 3) /* index 1191 */,
+ TILEPRO_OPC_NONE, CHILD(1200), CHILD(1203), CHILD(1206), CHILD(1209),
+ CHILD(1212), CHILD(1215), CHILD(1218),
+ BITFIELD(53, 1) /* index 1200 */,
TILEPRO_OPC_DRAIN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1163 */,
+ BITFIELD(53, 1) /* index 1203 */,
TILEPRO_OPC_DTLBPR, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1166 */,
+ BITFIELD(53, 1) /* index 1206 */,
TILEPRO_OPC_FINV, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1169 */,
+ BITFIELD(53, 1) /* index 1209 */,
TILEPRO_OPC_FLUSH, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1172 */,
+ BITFIELD(53, 1) /* index 1212 */,
TILEPRO_OPC_FNOP, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1175 */,
+ BITFIELD(53, 1) /* index 1215 */,
TILEPRO_OPC_ICOH, TILEPRO_OPC_NONE,
- BITFIELD(31, 2) /* index 1178 */,
- CHILD(1183), CHILD(1211), CHILD(1239), CHILD(1239),
- BITFIELD(53, 1) /* index 1183 */,
- CHILD(1186), TILEPRO_OPC_NONE,
- BITFIELD(33, 2) /* index 1186 */,
- TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, CHILD(1191),
- BITFIELD(35, 2) /* index 1191 */,
- TILEPRO_OPC_ILL, CHILD(1196), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
- BITFIELD(37, 2) /* index 1196 */,
- TILEPRO_OPC_ILL, CHILD(1201), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
- BITFIELD(39, 2) /* index 1201 */,
- TILEPRO_OPC_ILL, CHILD(1206), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
- BITFIELD(41, 2) /* index 1206 */,
+ BITFIELD(31, 2) /* index 1218 */,
+ CHILD(1223), CHILD(1251), CHILD(1279), CHILD(1279),
+ BITFIELD(53, 1) /* index 1223 */,
+ CHILD(1226), TILEPRO_OPC_NONE,
+ BITFIELD(33, 2) /* index 1226 */,
+ TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, CHILD(1231),
+ BITFIELD(35, 2) /* index 1231 */,
+ TILEPRO_OPC_ILL, CHILD(1236), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
+ BITFIELD(37, 2) /* index 1236 */,
+ TILEPRO_OPC_ILL, CHILD(1241), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
+ BITFIELD(39, 2) /* index 1241 */,
+ TILEPRO_OPC_ILL, CHILD(1246), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
+ BITFIELD(41, 2) /* index 1246 */,
TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, TILEPRO_OPC_BPT, TILEPRO_OPC_ILL,
- BITFIELD(53, 1) /* index 1211 */,
- CHILD(1214), TILEPRO_OPC_NONE,
- BITFIELD(33, 2) /* index 1214 */,
- TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, CHILD(1219),
- BITFIELD(35, 2) /* index 1219 */,
- TILEPRO_OPC_ILL, CHILD(1224), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
- BITFIELD(37, 2) /* index 1224 */,
- TILEPRO_OPC_ILL, CHILD(1229), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
- BITFIELD(39, 2) /* index 1229 */,
- TILEPRO_OPC_ILL, CHILD(1234), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
- BITFIELD(41, 2) /* index 1234 */,
+ BITFIELD(53, 1) /* index 1251 */,
+ CHILD(1254), TILEPRO_OPC_NONE,
+ BITFIELD(33, 2) /* index 1254 */,
+ TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, CHILD(1259),
+ BITFIELD(35, 2) /* index 1259 */,
+ TILEPRO_OPC_ILL, CHILD(1264), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
+ BITFIELD(37, 2) /* index 1264 */,
+ TILEPRO_OPC_ILL, CHILD(1269), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
+ BITFIELD(39, 2) /* index 1269 */,
+ TILEPRO_OPC_ILL, CHILD(1274), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
+ BITFIELD(41, 2) /* index 1274 */,
TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, TILEPRO_OPC_RAISE, TILEPRO_OPC_ILL,
- BITFIELD(53, 1) /* index 1239 */,
+ BITFIELD(53, 1) /* index 1279 */,
TILEPRO_OPC_ILL, TILEPRO_OPC_NONE,
- BITFIELD(43, 3) /* index 1242 */,
- CHILD(1251), CHILD(1254), CHILD(1257), CHILD(1275), CHILD(1278),
- CHILD(1281), CHILD(1284), CHILD(1287),
- BITFIELD(53, 1) /* index 1251 */,
+ BITFIELD(43, 3) /* index 1282 */,
+ CHILD(1291), CHILD(1294), CHILD(1297), CHILD(1315), CHILD(1318),
+ CHILD(1321), CHILD(1324), CHILD(1327),
+ BITFIELD(53, 1) /* index 1291 */,
TILEPRO_OPC_INV, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1254 */,
+ BITFIELD(53, 1) /* index 1294 */,
TILEPRO_OPC_IRET, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1257 */,
- CHILD(1260), TILEPRO_OPC_NONE,
- BITFIELD(31, 2) /* index 1260 */,
- TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, CHILD(1265),
- BITFIELD(33, 2) /* index 1265 */,
- TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, CHILD(1270),
- BITFIELD(35, 2) /* index 1270 */,
+ BITFIELD(53, 1) /* index 1297 */,
+ CHILD(1300), TILEPRO_OPC_NONE,
+ BITFIELD(31, 2) /* index 1300 */,
+ TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, CHILD(1305),
+ BITFIELD(33, 2) /* index 1305 */,
+ TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, CHILD(1310),
+ BITFIELD(35, 2) /* index 1310 */,
TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_PREFETCH,
- BITFIELD(53, 1) /* index 1275 */,
+ BITFIELD(53, 1) /* index 1315 */,
TILEPRO_OPC_LB_U, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1278 */,
+ BITFIELD(53, 1) /* index 1318 */,
TILEPRO_OPC_LH, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1281 */,
+ BITFIELD(53, 1) /* index 1321 */,
TILEPRO_OPC_LH_U, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1284 */,
+ BITFIELD(53, 1) /* index 1324 */,
TILEPRO_OPC_LW, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1287 */,
+ BITFIELD(53, 1) /* index 1327 */,
TILEPRO_OPC_MF, TILEPRO_OPC_NONE,
- BITFIELD(43, 3) /* index 1290 */,
- CHILD(1299), CHILD(1302), CHILD(1305), CHILD(1308), CHILD(1311),
- CHILD(1314), CHILD(1317), CHILD(1320),
- BITFIELD(53, 1) /* index 1299 */,
+ BITFIELD(43, 3) /* index 1330 */,
+ CHILD(1339), CHILD(1342), CHILD(1345), CHILD(1348), CHILD(1351),
+ CHILD(1354), CHILD(1357), CHILD(1360),
+ BITFIELD(53, 1) /* index 1339 */,
TILEPRO_OPC_NAP, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1302 */,
+ BITFIELD(53, 1) /* index 1342 */,
TILEPRO_OPC_NOP, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1305 */,
+ BITFIELD(53, 1) /* index 1345 */,
TILEPRO_OPC_SWINT0, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1308 */,
+ BITFIELD(53, 1) /* index 1348 */,
TILEPRO_OPC_SWINT1, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1311 */,
+ BITFIELD(53, 1) /* index 1351 */,
TILEPRO_OPC_SWINT2, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1314 */,
+ BITFIELD(53, 1) /* index 1354 */,
TILEPRO_OPC_SWINT3, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1317 */,
+ BITFIELD(53, 1) /* index 1357 */,
TILEPRO_OPC_TNS, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1320 */,
+ BITFIELD(53, 1) /* index 1360 */,
TILEPRO_OPC_WH64, TILEPRO_OPC_NONE,
- BITFIELD(43, 2) /* index 1323 */,
- CHILD(1328), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
- BITFIELD(45, 1) /* index 1328 */,
- CHILD(1331), TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1331 */,
+ BITFIELD(43, 2) /* index 1363 */,
+ CHILD(1368), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
+ BITFIELD(45, 1) /* index 1368 */,
+ CHILD(1371), TILEPRO_OPC_NONE,
+ BITFIELD(53, 1) /* index 1371 */,
TILEPRO_OPC_LW_NA, TILEPRO_OPC_NONE,
- BITFIELD(46, 7) /* index 1334 */,
+ BITFIELD(46, 7) /* index 1374 */,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
- CHILD(1463), CHILD(1463), CHILD(1463), CHILD(1463), CHILD(1466),
- CHILD(1466), CHILD(1466), CHILD(1466), CHILD(1469), CHILD(1469),
- CHILD(1469), CHILD(1469), CHILD(1472), CHILD(1472), CHILD(1472),
- CHILD(1472), CHILD(1475), CHILD(1475), CHILD(1475), CHILD(1475),
- CHILD(1478), CHILD(1478), CHILD(1478), CHILD(1478), CHILD(1481),
- CHILD(1481), CHILD(1481), CHILD(1481), CHILD(1484), CHILD(1484),
- CHILD(1484), CHILD(1484), CHILD(1487), CHILD(1487), CHILD(1487),
- CHILD(1487), CHILD(1490), CHILD(1490), CHILD(1490), CHILD(1490),
- CHILD(1151), CHILD(1493), CHILD(1517), CHILD(1529), TILEPRO_OPC_NONE,
+ CHILD(1503), CHILD(1503), CHILD(1503), CHILD(1503), CHILD(1506),
+ CHILD(1506), CHILD(1506), CHILD(1506), CHILD(1509), CHILD(1509),
+ CHILD(1509), CHILD(1509), CHILD(1512), CHILD(1512), CHILD(1512),
+ CHILD(1512), CHILD(1515), CHILD(1515), CHILD(1515), CHILD(1515),
+ CHILD(1518), CHILD(1518), CHILD(1518), CHILD(1518), CHILD(1521),
+ CHILD(1521), CHILD(1521), CHILD(1521), CHILD(1524), CHILD(1524),
+ CHILD(1524), CHILD(1524), CHILD(1527), CHILD(1527), CHILD(1527),
+ CHILD(1527), CHILD(1530), CHILD(1530), CHILD(1530), CHILD(1530),
+ CHILD(1191), CHILD(1533), CHILD(1557), CHILD(1569), TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
@@ -8424,49 +8481,49 @@ static const unsigned short decode_X1_fsm[1540] =
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1463 */,
+ BITFIELD(53, 1) /* index 1503 */,
TILEPRO_OPC_RLI_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1466 */,
+ BITFIELD(53, 1) /* index 1506 */,
TILEPRO_OPC_SHLIB_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1469 */,
+ BITFIELD(53, 1) /* index 1509 */,
TILEPRO_OPC_SHLIH_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1472 */,
+ BITFIELD(53, 1) /* index 1512 */,
TILEPRO_OPC_SHLI_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1475 */,
+ BITFIELD(53, 1) /* index 1515 */,
TILEPRO_OPC_SHRIB_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1478 */,
+ BITFIELD(53, 1) /* index 1518 */,
TILEPRO_OPC_SHRIH_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1481 */,
+ BITFIELD(53, 1) /* index 1521 */,
TILEPRO_OPC_SHRI_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1484 */,
+ BITFIELD(53, 1) /* index 1524 */,
TILEPRO_OPC_SRAIB_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1487 */,
+ BITFIELD(53, 1) /* index 1527 */,
TILEPRO_OPC_SRAIH_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1490 */,
+ BITFIELD(53, 1) /* index 1530 */,
TILEPRO_OPC_SRAI_SN, TILEPRO_OPC_NONE,
- BITFIELD(43, 3) /* index 1493 */,
- CHILD(1251), CHILD(1254), CHILD(1502), CHILD(1505), CHILD(1508),
- CHILD(1511), CHILD(1514), CHILD(1287),
- BITFIELD(53, 1) /* index 1502 */,
+ BITFIELD(43, 3) /* index 1533 */,
+ CHILD(1291), CHILD(1294), CHILD(1542), CHILD(1545), CHILD(1548),
+ CHILD(1551), CHILD(1554), CHILD(1327),
+ BITFIELD(53, 1) /* index 1542 */,
TILEPRO_OPC_LB_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1505 */,
+ BITFIELD(53, 1) /* index 1545 */,
TILEPRO_OPC_LB_U_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1508 */,
+ BITFIELD(53, 1) /* index 1548 */,
TILEPRO_OPC_LH_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1511 */,
+ BITFIELD(53, 1) /* index 1551 */,
TILEPRO_OPC_LH_U_SN, TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1514 */,
+ BITFIELD(53, 1) /* index 1554 */,
TILEPRO_OPC_LW_SN, TILEPRO_OPC_NONE,
- BITFIELD(43, 3) /* index 1517 */,
- CHILD(1299), CHILD(1302), CHILD(1305), CHILD(1308), CHILD(1311),
- CHILD(1314), CHILD(1526), CHILD(1320),
- BITFIELD(53, 1) /* index 1526 */,
+ BITFIELD(43, 3) /* index 1557 */,
+ CHILD(1339), CHILD(1342), CHILD(1345), CHILD(1348), CHILD(1351),
+ CHILD(1354), CHILD(1566), CHILD(1360),
+ BITFIELD(53, 1) /* index 1566 */,
TILEPRO_OPC_TNS_SN, TILEPRO_OPC_NONE,
- BITFIELD(43, 2) /* index 1529 */,
- CHILD(1534), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
- BITFIELD(45, 1) /* index 1534 */,
- CHILD(1537), TILEPRO_OPC_NONE,
- BITFIELD(53, 1) /* index 1537 */,
+ BITFIELD(43, 2) /* index 1569 */,
+ CHILD(1574), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
+ BITFIELD(45, 1) /* index 1574 */,
+ CHILD(1577), TILEPRO_OPC_NONE,
+ BITFIELD(53, 1) /* index 1577 */,
TILEPRO_OPC_LW_NA_SN, TILEPRO_OPC_NONE,
};
@@ -9358,22 +9415,22 @@ const struct tilepro_operand tilepro_operands[43] =
{
TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
6, 0, 0, 1, 0, 0,
- create_Dest_X0, get_Dest_X0
+ create_Dest_X1, get_Dest_X1
},
{
TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
6, 0, 1, 0, 0, 0,
- create_SrcA_X0, get_SrcA_X0
+ create_SrcA_X1, get_SrcA_X1
},
{
TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
6, 0, 0, 1, 0, 0,
- create_Dest_X1, get_Dest_X1
+ create_Dest_X0, get_Dest_X0
},
{
TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
6, 0, 1, 0, 0, 0,
- create_SrcA_X1, get_SrcA_X1
+ create_SrcA_X0, get_SrcA_X0
},
{
TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),