Changes between Version 6 and Version 7 of GcnInstrsMubuf
- Timestamp:
- 01/03/16 14:00:15 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GcnInstrsMubuf
v6 v7 788 788 Syntax: BUFFER_ATOMIC_ADD VDATA, VADDR, SRSRC, SOFFSET<br /> 789 789 Description: Add VDATA to value of SRSRC resource, and store result to this resource. 790 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.791 Operation is atomic.<br />790 If GLC flag is set then return previous value from resource to VDATA, 791 otherwise keep VDATA value. Operation is atomic.<br /> 792 792 Operation:<br /> 793 793 <code>UINT32* VM = (UINT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 797 797 Syntax: BUFFER_ATOMIC_ADD_X2 VDATA(2), VADDR, SRSRC, SOFFSET<br /> 798 798 Description: Add 64-bit VDATA to 64-bit value of SRSRC resource, and store result 799 to this resource. If GLC flag is set then return previous value to VDATA,799 to this resource. If GLC flag is set then return previous value from resource to VDATA, 800 800 otherwise keep VDATA value. Operation is atomic.<br /> 801 801 Operation:<br /> … … 806 806 Syntax: BUFFER_ATOMIC_AND VDATA, VADDR, SRSRC, SOFFSET<br /> 807 807 Description: Do bitwise AND on VDATA and value of SRSRC resource, 808 and store result to this resource. If GLC flag is set then return previous value to VDATA,809 otherwise keep VDATA value. Operation is atomic.<br />808 and store result to this resource. If GLC flag is set then return previous value 809 from resource to VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 810 810 Operation:<br /> 811 811 <code>UINT32* VM = (UINT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 815 815 Syntax: BUFFER_ATOMIC_AND_X2 VDATA(2), VADDR, SRSRC, SOFFSET<br /> 816 816 Description: Do 64-bit bitwise AND on VDATA and value of SRSRC resource, 817 and store result to this resource. If GLC flag is set then return previous value to VDATA,818 otherwise keep VDATA value. Operation is atomic.<br />817 and store result to this resource. If GLC flag is set then return previous value 818 from resource to VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 819 819 Operation:<br /> 820 820 <code>UINT64* VM = (UINT64*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 825 825 Description: Store lower VDATA dword into SRSRC resource if previous value 826 826 from resource is equal VDATA>>32, otherwise keep old value from resource. 827 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.828 Operation is atomic.<br />827 If GLC flag is set then return previous value from resource to VDATA, 828 otherwise keep VDATA value. Operation is atomic.<br /> 829 829 Operation:<br /> 830 830 <code>UINT32* VM = (UINT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 836 836 Description: Store lower VDATA 64-bit word into SRSRC resource if previous value 837 837 from resource is equal VDATA>>64, otherwise keep old value from resource. 838 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.839 Operation is atomic.<br />838 If GLC flag is set then return previous value from resource to VDATA, 839 otherwise keep VDATA value. Operation is atomic.<br /> 840 840 Operation:<br /> 841 841 <code>UINT64* VM = (UINT64*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 847 847 Description: Compare value from SRSRC resource and if less or equal than VDATA 848 848 and this value is not zero, then decrement value from resource, 849 otherwise store VDATA to resource. If GLC flag is set then return previous value to VDATA,850 otherwise keep VDATA value. Operation is atomic.<br />849 otherwise store VDATA to resource. If GLC flag is set then return previous value 850 from resource to VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 851 851 Operation:<br /> 852 852 <code>UINT32* VM = (UINT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 858 858 Description: Compare 64-bit value from SRSRC resource and if less or equal than VDATA 859 859 and this value is not zero, then decrement value from resource, 860 otherwise store VDATA to resource. If GLC flag is set then return previous value to VDATA,861 otherwise keep VDATA value. Operation is atomic.<br />860 otherwise store VDATA to resource. If GLC flag is set then return previous value 861 from resource to VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 862 862 Operation:<br /> 863 863 <code>UINT64* VM = (UINT64*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 870 870 value from resource is equal singe floating point value VDATA>>32, 871 871 otherwise keep old value from resource. 872 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.873 Operation is atomic.<br />872 If GLC flag is set then return previous value from resource to VDATA, 873 otherwise keep VDATA value. Operation is atomic.<br /> 874 874 Operation:<br /> 875 875 <code>FLOAT* VM = (FLOAT*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 882 882 floating point value from resource is equal singe floating point value VDATA>>32, 883 883 otherwise keep old value from resource. 884 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.885 Operation is atomic.<br />884 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 885 VDATA value. Operation is atomic.<br /> 886 886 Operation:<br /> 887 887 <code>DOUBLE* VM = (DOUBLE*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 893 893 Description: Choose greatest single floating point value from VDATA and from 894 894 SRSRC resource, and store result to this resource. 895 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.896 Operation is atomic.<br />895 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 896 VDATA value. Operation is atomic.<br /> 897 897 Operation:<br /> 898 898 <code>FLOAT* VM = (FLOAT*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 903 903 Description: Choose greatest double floating point value from VDATA and from 904 904 SRSRC resource, and store result to this resource. 905 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.906 Operation is atomic.<br />905 If GLC flag is set then return previous value from resource to VDATA, 906 otherwise keep VDATA value. Operation is atomic.<br /> 907 907 Operation:<br /> 908 908 <code>DOUBLE* VM = (DOUBLE*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 913 913 Description: Choose smallest single floating point value from VDATA and from 914 914 SRSRC resource, and store result to this resource. 915 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.916 Operation is atomic.<br />915 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 916 VDATA value. Operation is atomic.<br /> 917 917 Operation:<br /> 918 918 <code>FLOAT* VM = (FLOAT*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 923 923 Description: Choose smallest double floating point value from VDATA and from 924 924 SRSRC resource, and store result to this resource. 925 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.926 Operation is atomic.<br />925 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 926 VDATA value. Operation is atomic.<br /> 927 927 Operation:<br /> 928 928 <code>DOUBLE* VM = (DOUBLE*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 933 933 Description: Compare value from SRSRC resource and if less than VDATA, 934 934 then increment value from resource, otherwise store zero to resource. 935 If GLC flag is set then return previous value to VDATA,935 If GLC flag is set then return previous value from resource to VDATA, 936 936 otherwise keep VDATA value. Operation is atomic.<br /> 937 937 Operation:<br /> … … 943 943 Description: Compare 64-bit value from SRSRC resource and if less than VDATA, 944 944 then increment value from resource, otherwise store zero to resource. 945 If GLC flag is set then return previous value to VDATA,945 If GLC flag is set then return previous value from resource to VDATA, 946 946 otherwise keep VDATA value. Operation is atomic.<br /> 947 947 Operation:<br /> … … 952 952 Syntax: BUFFER_ATOMIC_OR VDATA, VADDR, SRSRC, SOFFSET<br /> 953 953 Description: Do bitwise OR on VDATA and value of SRSRC resource, 954 and store result to this resource. If GLC flag is set then return previous value to VDATA,955 otherwise keep VDATA value. Operation is atomic.<br />954 and store result to this resource. If GLC flag is set then return previous value 955 from resource to VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 956 956 Operation:<br /> 957 957 <code>UINT32* VM = (UINT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 961 961 Syntax: BUFFER_ATOMIC_OR_X2 VDATA(2), VADDR, SRSRC, SOFFSET<br /> 962 962 Description: Do 64-bit bitwise OR on VDATA and value of SRSRC resource, 963 and store result to this resource. If GLC flag is set then return previous value to VDATA,964 otherwise keep VDATA value. Operation is atomic.<br />963 and store result to this resource. If GLC flag is set then return previous value 964 from resource to VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 965 965 Operation:<br /> 966 966 <code>UINT64* VM = (UINT64*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 970 970 Syntax: BUFFER_ATOMIC_RSUB VDATA, VADDR, SRSRC, SOFFSET<br /> 971 971 Description: Subtract value of SRSRC resource from VDATA, and store result to 972 this resource. If GLC flag is set then return previous value to VDATA,972 this resource. If GLC flag is set then return previous value from resource to VDATA, 973 973 otherwise keep VDATA value. Operation is atomic.<br /> 974 974 Operation:<br /> … … 979 979 Syntax: BUFFER_ATOMIC_RSUB_X2 VDATA(2), VADDR, SRSRC, SOFFSET<br /> 980 980 Description: Subtract 64-bit value of SRSRC resource from 64-bit VDATA, and store result 981 to this resource. If GLC flag is set then return previous value to VDATA,981 to this resource. If GLC flag is set then return previous value from resource to VDATA, 982 982 otherwise keep VDATA value. Operation is atomic.<br /> 983 983 Operation:<br /> … … 989 989 Description: Choose greatest signed 32-bit value from VDATA and from SRSRC resource, 990 990 and store result to this resource. 991 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.992 Operation is atomic.<br />991 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 992 VDATA value. Operation is atomic.<br /> 993 993 Operation:<br /> 994 994 <code>INT32* VM = (INT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 999 999 Description: Choose greatest signed 64-bit value from VDATA and from SRSRC resource, 1000 1000 and store result to this resource. 1001 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.1002 Operation is atomic.<br />1001 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 1002 VDATA value. Operation is atomic.<br /> 1003 1003 Operation:<br /> 1004 1004 <code>INT64* VM = (INT64*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1009 1009 Description: Choose smallest signed 32-bit value from VDATA and from SRSRC resource, 1010 1010 and store result to this resource. 1011 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.1012 Operation is atomic.<br />1011 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 1012 VDATA value. Operation is atomic.<br /> 1013 1013 Operation:<br /> 1014 1014 <code>INT32* VM = (INT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1019 1019 Description: Choose smallest signed 64-bit value from VDATA and from SRSRC resource, 1020 1020 and store result to this resource. 1021 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.1022 Operation is atomic.<br />1021 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 1022 VDATA value. Operation is atomic.<br /> 1023 1023 Operation:<br /> 1024 1024 <code>INT64* VM = (INT64*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1028 1028 Syntax: BUFFER_ATOMIC_SUB VDATA, VADDR, SRSRC, SOFFSET<br /> 1029 1029 Description: Subtract VDATA from value from SRSRC resource, and store result to 1030 this resource. If GLC flag is set then return previous value to VDATA,1030 this resource. If GLC flag is set then return previous value from resource to VDATA, 1031 1031 otherwise keep VDATA value. Operation is atomic.<br /> 1032 1032 Operation:<br /> … … 1037 1037 Syntax: BUFFER_ATOMIC_SUB_X2 VDATA(2), VADDR, SRSRC, SOFFSET<br /> 1038 1038 Description: Subtract 64-bit VDATA from 64-bit value from SRSRC resource, and store 1039 result to this resource. If GLC flag is set then return previous value to VDATA,1040 otherwise keep VDATA value. Operation is atomic.<br />1039 result to this resource. If GLC flag is set then return previous value from resource to 1040 VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 1041 1041 Operation:<br /> 1042 1042 <code>UINT64* VM = (UINT64*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1046 1046 Syntax: BUFFER_ATOMIC_SWAP VDATA, VADDR, SRSRC, SOFFSET<br /> 1047 1047 Description: Store VDATA dword into SRSRC resource. If GLC flag is set then 1048 return previous value to VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 1048 return previous value from resource to VDATA, otherwise keep VDATA value. 1049 Operation is atomic.<br /> 1049 1050 Operation:<br /> 1050 1051 <code>UINT32* VM = (UINT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1054 1055 Syntax: BUFFER_ATOMIC_SWAP_X2 VDATA(2), VADDR, SRSRC, SOFFSET<br /> 1055 1056 Description: Store VDATA 64-bit word into SRSRC resource. If GLC flag is set then 1056 return previous value to VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 1057 return previous value from resource to VDATA, otherwise keep VDATA value. 1058 Operation is atomic.<br /> 1057 1059 Operation:<br /> 1058 1060 <code>UINT64* VM = (UINT64*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1063 1065 Description: Choose greatest unsigned 32-bit value from VDATA and from SRSRC resource, 1064 1066 and store result to this resource. 1065 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.1066 Operation is atomic.<br />1067 If GLC flag is set then return previous value from resource to VDATA, otherwise 1068 keep VDATA value. Operation is atomic.<br /> 1067 1069 Operation:<br /> 1068 1070 <code>UINT32* VM = (UINT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1073 1075 Description: Choose greatest unsigned 64-bit value from VDATA and from SRSRC resource, 1074 1076 and store result to this resource. 1075 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.1076 Operation is atomic.<br />1077 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 1078 VDATA value. Operation is atomic.<br /> 1077 1079 Operation:<br /> 1078 1080 <code>UINT64* VM = (UINT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1083 1085 Description: Choose smallest unsigned 32-bit value from VDATA and from SRSRC resource, 1084 1086 and store result to this resource. 1085 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.1086 Operation is atomic.<br />1087 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 1088 VDATA value. Operation is atomic.<br /> 1087 1089 Operation:<br /> 1088 1090 <code>UINT32* VM = (UINT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1093 1095 Description: Choose smallest unsigned 64-bit value from VDATA and from SRSRC resource, 1094 1096 and store result to this resource. 1095 If GLC flag is set then return previous value to VDATA, otherwise keep VDATA value.1096 Operation is atomic.<br />1097 If GLC flag is set then return previous value from resource to VDATA, otherwise keep 1098 VDATA value. Operation is atomic.<br /> 1097 1099 Operation:<br /> 1098 1100 <code>UINT64* VM = (UINT64*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1102 1104 Syntax: BUFFER_ATOMIC_XOR VDATA, VADDR, SRSRC, SOFFSET<br /> 1103 1105 Description: Do bitwise XOR on VDATA and value of SRSRC resource, 1104 and store result to this resource. If GLC flag is set then return previous value to VDATA,1105 otherwise keep VDATA value. Operation is atomic.<br />1106 and store result to this resource. If GLC flag is set then return previous value 1107 from resource to VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 1106 1108 Operation:<br /> 1107 1109 <code>UINT32* VM = (UINT32*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET) … … 1111 1113 Syntax: BUFFER_ATOMIC_XOR_X2 VDATA(2), VADDR, SRSRC, SOFFSET<br /> 1112 1114 Description: Do 64-bit bitwise XOR on VDATA and value of SRSRC resource, 1113 and store result to this resource. If GLC flag is set then return previous value to VDATA,1114 otherwise keep VDATA value. Operation is atomic.<br />1115 and store result to this resource. If GLC flag is set then return previous value 1116 from resource to VDATA, otherwise keep VDATA value. Operation is atomic.<br /> 1115 1117 Operation:<br /> 1116 1118 <code>UINT64* VM = (UINT64*)VMEM(SRSRC, VADDR, SOFFSET, OFFSET)