- 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.
+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
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,
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,
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,
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. */
-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,
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 [] =
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)
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 },
{
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)
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])))
_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. */
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:
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:
}
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,
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
}
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:
}
else
{
- if (local_got_refcounts[r_symndx] > 0)
+ if (local_got_refcounts &&
+ local_got_refcounts[r_symndx] > 0)
local_got_refcounts[r_symndx]--;
}
break;
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;
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
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;
name = bfd_section_name (input_bfd, sec);
}
+ 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:
}
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:
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:
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)
{
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, \
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, \
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",
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 [] =
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)
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
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;
};
{
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)
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,
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
_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. */
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;
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;
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;
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 */
}
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,
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
}
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)
}
else
{
- if (local_got_refcounts[r_symndx] > 0)
+ if (local_got_refcounts &&
+ local_got_refcounts[r_symndx] > 0)
local_got_refcounts[r_symndx]--;
}
break;
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;
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
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;
name = bfd_section_name (input_bfd, sec);
}
+ 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)
}
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)
{
{
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);
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);
"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",
"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",
"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",
BFD_RELOC_TILEPRO_SHAMT_Y0
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_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.
BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
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_X0_HW1_LAST_GOT
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
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
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_X0_HW1_LAST_TLS_IE
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_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.
+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
#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;
/* 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. */
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;
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;
#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:
/* 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
#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;
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. */
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:
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;
#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:
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
@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
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
@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
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
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
+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.
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)
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)
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)
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)
+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.
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,
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,
+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.
#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, } },
-1ULL,
-1ULL
}
+#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,
#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,
#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,
#endif
},
{ "prefetch", TILEGX_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#endif
},
{ "dtlbpr", TILEGX_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#endif
},
{ "finv", TILEGX_OPC_FINV, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "flush", TILEGX_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#endif
},
{ "icoh", TILEGX_OPC_ICOH, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "inv", TILEGX_OPC_INV, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "jalr", TILEGX_OPC_JALR, 0xa, 1, TREG_LR, 1,
- { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "jalrp", TILEGX_OPC_JALRP, 0xa, 1, TREG_LR, 1,
- { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "jr", TILEGX_OPC_JR, 0xa, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "jrp", TILEGX_OPC_JRP, 0xa, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#endif
},
{ "lnk", TILEGX_OPC_LNK, 0xa, 1, TREG_ZERO, 1,
- { { 0, }, { 8 }, { 0, }, { 12 }, { 0, } },
+ { { 0, }, { 6 }, { 0, }, { 12 }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#endif
},
{ "wh64", TILEGX_OPC_WH64, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
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),
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,
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,
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,
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 */,
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,
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,
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,
};
{
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),
#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, } },
-1ULL,
-1ULL
}
+#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,
#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,
#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,
#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,
#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,
#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,
#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,
#endif
},
{ "prefetch", TILEPRO_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 15 } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 15 } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#endif
},
{ "dtlbpr", TILEPRO_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#endif
},
{ "finv", TILEPRO_OPC_FINV, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "flush", TILEPRO_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "icoh", TILEPRO_OPC_ICOH, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#endif
},
{ "inv", TILEPRO_OPC_INV, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "jalr", TILEPRO_OPC_JALR, 0x2, 1, TREG_LR, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "jalrp", TILEPRO_OPC_JALRP, 0x2, 1, TREG_LR, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "jr", TILEPRO_OPC_JR, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#endif
},
{ "jrp", TILEPRO_OPC_JRP, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#endif
},
{ "lnk", TILEPRO_OPC_LNK, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#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,
#endif
},
{ "wh64", TILEPRO_OPC_WH64, 0x2, 1, TREG_ZERO, 1,
- { { 0, }, { 10 }, { 0, }, { 0, }, { 0, } },
+ { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
#ifndef DISASM_ONLY
{
0ULL,
#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,
#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,
#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,
#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,
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,
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,
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,
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,
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,
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,
};
{
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),