21 #ifndef __ARCH_OPCODE_H__
22 #define __ARCH_OPCODE_H__
29 #define TILEPRO_BUNDLE_Y_ENCODING_MASK ((tilepro_bundle_bits)1 << 63)
70 #define TILE_BUNDLE_SIZE_IN_BYTES TILEPRO_BUNDLE_SIZE_IN_BYTES
71 #define TILE_BUNDLE_ALIGNMENT_IN_BYTES TILEPRO_BUNDLE_ALIGNMENT_IN_BYTES
72 #define TILE_LOG2_BUNDLE_ALIGNMENT_IN_BYTES \
73 TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES
76 #define TILEPRO_BPT_BUNDLE 0x400b3cae70166000ULL
81 const unsigned int n = (
unsigned int)num;
82 return (((n >> 0)) & 0x3ff);
88 return (((
unsigned int)(n >> 43)) & 0x00007fff) |
89 (((
unsigned int)(n >> 20)) & 0x00018000);
95 return (((
unsigned int)(n >> 31)) & 0xf);
101 return (((
unsigned int)(n >> 31)) & 0x0000003f) |
102 (((
unsigned int)(n >> 43)) & 0x000000c0);
108 const unsigned int n = (
unsigned int)num;
109 return (((n >> 2)) & 0x3);
115 const unsigned int n = (
unsigned int)num;
116 return (((n >> 0)) & 0x3f);
122 return (((
unsigned int)(n >> 31)) & 0x3f);
128 const unsigned int n = (
unsigned int)num;
129 return (((n >> 0)) & 0x3f);
135 return (((
unsigned int)(n >> 31)) & 0x3f);
141 const unsigned int n = (
unsigned int)num;
142 return (((n >> 12)) & 0xffff);
148 return (((
unsigned int)(n >> 43)) & 0xffff);
154 const unsigned int n = (
unsigned int)num;
155 return (((n >> 0)) & 0xff);
161 const unsigned int n = (
unsigned int)num;
162 return (((n >> 12)) & 0xff);
168 return (((
unsigned int)(n >> 43)) & 0xff);
174 const unsigned int n = (
unsigned int)num;
175 return (((n >> 12)) & 0xff);
181 return (((
unsigned int)(n >> 43)) & 0xff);
187 const unsigned int n = (
unsigned int)num;
188 return (((n >> 20)) & 0x7f);
194 return (((
unsigned int)(n >> 51)) & 0x7f);
200 const unsigned int n = (
unsigned int)num;
201 return (((n >> 8)) & 0x3);
207 return (((
unsigned int)(n >> 43)) & 0x00007fff) |
208 (((
unsigned int)(n >> 20)) & 0x00018000) |
209 (((
unsigned int)(n >> 14)) & 0x001e0000) |
210 (((
unsigned int)(n >> 16)) & 0x07e00000) |
211 (((
unsigned int)(n >> 31)) & 0x18000000);
217 return (((
unsigned int)(n >> 43)) & 0x00007fff) |
218 (((
unsigned int)(n >> 20)) & 0x00018000) |
219 (((
unsigned int)(n >> 14)) & 0x001e0000) |
220 (((
unsigned int)(n >> 16)) & 0x07e00000) |
221 (((
unsigned int)(n >> 31)) & 0x08000000);
227 return (((
unsigned int)(n >> 37)) & 0x00003fff) |
228 (((
unsigned int)(n >> 44)) & 0x00004000);
234 const unsigned int n = (
unsigned int)num;
235 return (((n >> 18)) & 0x1f);
241 return (((
unsigned int)(n >> 49)) & 0x1f);
247 const unsigned int n = (
unsigned int)num;
248 return (((n >> 23)) & 0x1f);
254 return (((
unsigned int)(n >> 54)) & 0x1f);
260 return (((
unsigned int)(n >> 31)) & 0x0000003f) |
261 (((
unsigned int)(n >> 37)) & 0x00003fc0) |
262 (((
unsigned int)(n >> 44)) & 0x00004000);
268 return (((
unsigned int)(n >> 63)) & 0x1);
274 const unsigned int n = (
unsigned int)num;
275 return (((n >> 0)) & 0xf);
281 const unsigned int n = (
unsigned int)num;
282 return (((n >> 10)) & 0x3f);
288 const unsigned int n = (
unsigned int)num;
289 return (((n >> 28)) & 0x7);
295 return (((
unsigned int)(n >> 59)) & 0xf);
301 const unsigned int n = (
unsigned int)num;
302 return (((n >> 27)) & 0xf);
308 return (((
unsigned int)(n >> 59)) & 0xf);
314 return (((
unsigned int)(n >> 56)) & 0x7);
320 const unsigned int n = (
unsigned int)num;
321 return (((n >> 4)) & 0xf);
327 const unsigned int n = (
unsigned int)num;
328 return (((n >> 18)) & 0x1ff);
334 return (((
unsigned int)(n >> 49)) & 0x1ff);
340 const unsigned int n = (
unsigned int)num;
341 return (((n >> 18)) & 0x3);
347 return (((
unsigned int)(n >> 49)) & 0x3);
353 const unsigned int n = (
unsigned int)num;
354 return (((n >> 0)) & 0x3ff);
360 const unsigned int n = (
unsigned int)num;
361 return (((n >> 27)) & 0x1);
367 return (((
unsigned int)(n >> 58)) & 0x1);
373 const unsigned int n = (
unsigned int)num;
374 return (((n >> 12)) & 0x1f);
380 return (((
unsigned int)(n >> 43)) & 0x1f);
386 const unsigned int n = (
unsigned int)num;
387 return (((n >> 12)) & 0x1f);
393 return (((
unsigned int)(n >> 43)) & 0x1f);
399 const unsigned int n = (
unsigned int)num;
400 return (((n >> 6)) & 0x3f);
406 return (((
unsigned int)(n >> 37)) & 0x3f);
412 const unsigned int n = (
unsigned int)num;
413 return (((n >> 6)) & 0x3f);
419 return (((
unsigned int)(n >> 37)) & 0x3f);
425 return (((n >> 26)) & 0x00000001) |
426 (((
unsigned int)(n >> 50)) & 0x0000003e);
432 const unsigned int n = (
unsigned int)num;
433 return (((n >> 20)) & 0x3f);
439 const unsigned int n = (
unsigned int)num;
440 return (((n >> 12)) & 0x3f);
446 return (((
unsigned int)(n >> 43)) & 0x3f);
452 const unsigned int n = (
unsigned int)num;
453 return (((n >> 12)) & 0x3f);
459 return (((
unsigned int)(n >> 43)) & 0x3f);
465 const unsigned int n = (
unsigned int)num;
466 return (((n >> 0)) & 0x3);
472 const unsigned int n = (
unsigned int)num;
473 return (((n >> 12)) & 0x1f);
479 return (((
unsigned int)(n >> 43)) & 0x1f);
485 const unsigned int n = (
unsigned int)num;
486 return (((n >> 12)) & 0x1f);
492 return (((
unsigned int)(n >> 43)) & 0x1f);
498 const unsigned int n = (
unsigned int)num;
499 return (((n >> 17)) & 0x3ff);
505 return (((
unsigned int)(n >> 48)) & 0x3ff);
511 const unsigned int n = (
unsigned int)num;
512 return (((n >> 17)) & 0x7);
518 return (((
unsigned int)(n >> 48)) & 0x7);
525 int shift = (
int)(
sizeof(
int) * 8 - num_bits);
526 return (n << shift) >> shift;
532 create_BrOff_SN(
int num)
534 const unsigned int n = (
unsigned int)num;
535 return ((n & 0x3ff) << 0);
539 create_BrOff_X1(
int num)
541 const unsigned int n = (
unsigned int)num;
547 create_BrType_X1(
int num)
549 const unsigned int n = (
unsigned int)num;
554 create_Dest_Imm8_X1(
int num)
556 const unsigned int n = (
unsigned int)num;
562 create_Dest_SN(
int num)
564 const unsigned int n = (
unsigned int)num;
565 return ((n & 0x3) << 2);
569 create_Dest_X0(
int num)
571 const unsigned int n = (
unsigned int)num;
572 return ((n & 0x3f) << 0);
576 create_Dest_X1(
int num)
578 const unsigned int n = (
unsigned int)num;
583 create_Dest_Y0(
int num)
585 const unsigned int n = (
unsigned int)num;
586 return ((n & 0x3f) << 0);
590 create_Dest_Y1(
int num)
592 const unsigned int n = (
unsigned int)num;
597 create_Imm16_X0(
int num)
599 const unsigned int n = (
unsigned int)num;
600 return ((n & 0xffff) << 12);
604 create_Imm16_X1(
int num)
606 const unsigned int n = (
unsigned int)num;
611 create_Imm8_SN(
int num)
613 const unsigned int n = (
unsigned int)num;
614 return ((n & 0xff) << 0);
618 create_Imm8_X0(
int num)
620 const unsigned int n = (
unsigned int)num;
621 return ((n & 0xff) << 12);
625 create_Imm8_X1(
int num)
627 const unsigned int n = (
unsigned int)num;
632 create_Imm8_Y0(
int num)
634 const unsigned int n = (
unsigned int)num;
635 return ((n & 0xff) << 12);
639 create_Imm8_Y1(
int num)
641 const unsigned int n = (
unsigned int)num;
646 create_ImmOpcodeExtension_X0(
int num)
648 const unsigned int n = (
unsigned int)num;
649 return ((n & 0x7f) << 20);
653 create_ImmOpcodeExtension_X1(
int num)
655 const unsigned int n = (
unsigned int)num;
660 create_ImmRROpcodeExtension_SN(
int num)
662 const unsigned int n = (
unsigned int)num;
663 return ((n & 0x3) << 8);
667 create_JOffLong_X1(
int num)
669 const unsigned int n = (
unsigned int)num;
678 create_JOff_X1(
int num)
680 const unsigned int n = (
unsigned int)num;
689 create_MF_Imm15_X1(
int num)
691 const unsigned int n = (
unsigned int)num;
697 create_MMEnd_X0(
int num)
699 const unsigned int n = (
unsigned int)num;
700 return ((n & 0x1f) << 18);
704 create_MMEnd_X1(
int num)
706 const unsigned int n = (
unsigned int)num;
711 create_MMStart_X0(
int num)
713 const unsigned int n = (
unsigned int)num;
714 return ((n & 0x1f) << 23);
718 create_MMStart_X1(
int num)
720 const unsigned int n = (
unsigned int)num;
725 create_MT_Imm15_X1(
int num)
727 const unsigned int n = (
unsigned int)num;
736 const unsigned int n = (
unsigned int)num;
741 create_NoRegOpcodeExtension_SN(
int num)
743 const unsigned int n = (
unsigned int)num;
744 return ((n & 0xf) << 0);
748 create_Opcode_SN(
int num)
750 const unsigned int n = (
unsigned int)num;
751 return ((n & 0x3f) << 10);
755 create_Opcode_X0(
int num)
757 const unsigned int n = (
unsigned int)num;
758 return ((n & 0x7) << 28);
762 create_Opcode_X1(
int num)
764 const unsigned int n = (
unsigned int)num;
769 create_Opcode_Y0(
int num)
771 const unsigned int n = (
unsigned int)num;
772 return ((n & 0xf) << 27);
776 create_Opcode_Y1(
int num)
778 const unsigned int n = (
unsigned int)num;
783 create_Opcode_Y2(
int num)
785 const unsigned int n = (
unsigned int)num;
790 create_RROpcodeExtension_SN(
int num)
792 const unsigned int n = (
unsigned int)num;
793 return ((n & 0xf) << 4);
797 create_RRROpcodeExtension_X0(
int num)
799 const unsigned int n = (
unsigned int)num;
800 return ((n & 0x1ff) << 18);
804 create_RRROpcodeExtension_X1(
int num)
806 const unsigned int n = (
unsigned int)num;
811 create_RRROpcodeExtension_Y0(
int num)
813 const unsigned int n = (
unsigned int)num;
814 return ((n & 0x3) << 18);
818 create_RRROpcodeExtension_Y1(
int num)
820 const unsigned int n = (
unsigned int)num;
825 create_RouteOpcodeExtension_SN(
int num)
827 const unsigned int n = (
unsigned int)num;
828 return ((n & 0x3ff) << 0);
834 const unsigned int n = (
unsigned int)num;
835 return ((n & 0x1) << 27);
841 const unsigned int n = (
unsigned int)num;
846 create_ShAmt_X0(
int num)
848 const unsigned int n = (
unsigned int)num;
849 return ((n & 0x1f) << 12);
853 create_ShAmt_X1(
int num)
855 const unsigned int n = (
unsigned int)num;
860 create_ShAmt_Y0(
int num)
862 const unsigned int n = (
unsigned int)num;
863 return ((n & 0x1f) << 12);
867 create_ShAmt_Y1(
int num)
869 const unsigned int n = (
unsigned int)num;
874 create_SrcA_X0(
int num)
876 const unsigned int n = (
unsigned int)num;
877 return ((n & 0x3f) << 6);
881 create_SrcA_X1(
int num)
883 const unsigned int n = (
unsigned int)num;
888 create_SrcA_Y0(
int num)
890 const unsigned int n = (
unsigned int)num;
891 return ((n & 0x3f) << 6);
895 create_SrcA_Y1(
int num)
897 const unsigned int n = (
unsigned int)num;
902 create_SrcA_Y2(
int num)
904 const unsigned int n = (
unsigned int)num;
905 return ((n & 0x00000001) << 26) |
910 create_SrcBDest_Y2(
int num)
912 const unsigned int n = (
unsigned int)num;
913 return ((n & 0x3f) << 20);
917 create_SrcB_X0(
int num)
919 const unsigned int n = (
unsigned int)num;
920 return ((n & 0x3f) << 12);
924 create_SrcB_X1(
int num)
926 const unsigned int n = (
unsigned int)num;
931 create_SrcB_Y0(
int num)
933 const unsigned int n = (
unsigned int)num;
934 return ((n & 0x3f) << 12);
938 create_SrcB_Y1(
int num)
940 const unsigned int n = (
unsigned int)num;
945 create_Src_SN(
int num)
947 const unsigned int n = (
unsigned int)num;
948 return ((n & 0x3) << 0);
952 create_UnOpcodeExtension_X0(
int num)
954 const unsigned int n = (
unsigned int)num;
955 return ((n & 0x1f) << 12);
959 create_UnOpcodeExtension_X1(
int num)
961 const unsigned int n = (
unsigned int)num;
966 create_UnOpcodeExtension_Y0(
int num)
968 const unsigned int n = (
unsigned int)num;
969 return ((n & 0x1f) << 12);
973 create_UnOpcodeExtension_Y1(
int num)
975 const unsigned int n = (
unsigned int)num;
980 create_UnShOpcodeExtension_X0(
int num)
982 const unsigned int n = (
unsigned int)num;
983 return ((n & 0x3ff) << 17);
987 create_UnShOpcodeExtension_X1(
int num)
989 const unsigned int n = (
unsigned int)num;
994 create_UnShOpcodeExtension_Y0(
int num)
996 const unsigned int n = (
unsigned int)num;
997 return ((n & 0x7) << 17);
1001 create_UnShOpcodeExtension_Y1(
int num)
1003 const unsigned int n = (
unsigned int)num;