2
! The contents of this file are subject to the Mozilla Public
3
! License Version 1.1 (the "License"); you may not use this file
4
! except in compliance with the License. You may obtain a copy of
5
! the License at http://www.mozilla.org/MPL/
7
! Software distributed under the License is distributed on an "AS
8
! IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
9
! implied. See the License for the specific language governing
10
! rights and limitations under the License.
12
! The Original Code is vis inline macros (32 bit). (vis_32.il 3.3)
14
! The Initial Developer of the Original Code is Sun Microsystems Inc.
15
! Portions created by Sun Microsystems Inc. are
16
! Copyright (C) 1995-2000 Sun Microsystems Inc. All Rights Reserved.
20
! Alternatively, the contents of this file may be used under the
21
! terms of the GNU General Public License Version 2 or later (the
22
! "GPL"), in which case the provisions of the GPL are applicable
23
! instead of those above. If you wish to allow use of your
24
! version of this file only under the terms of the GPL and not to
25
! allow others to use your version of this file under the MPL,
26
! indicate your decision by deleting the provisions above and
27
! replace them with the notice and other provisions required by
28
! the GPL. If you do not delete the provisions above, a recipient
29
! may use your version of this file under either the MPL or the
31
! $Id: vis_32.il,v 1.1 2000/09/29 23:38:04 nelsonb%netscape.com Exp $
33
! @(#)vis_32.il 3.3 00/03/02 SMI
35
! The interface to the VIS instructions as declared below (and in the VIS
36
! User's Manual) will not change, but the macro implementation might change
39
!--------------------------------------------------------------------
40
! Pure edge handling instructions
42
! int vis_edge8(void */*frs1*/, void */*frs2*/);
48
! int vis_edge8l(void */*frs1*/, void */*frs2*/);
54
! int vis_edge16(void */*frs1*/, void */*frs2*/);
60
! int vis_edge16l(void */*frs1*/, void */*frs2*/);
66
! int vis_edge32(void */*frs1*/, void */*frs2*/);
72
! int vis_edge32l(void */*frs1*/, void */*frs2*/);
78
!--------------------------------------------------------------------
79
! Edge handling instructions with negative return values if cc set
81
! int vis_edge8cc(void */*frs1*/, void */*frs2*/);
90
! int vis_edge8lcc(void */*frs1*/, void */*frs2*/);
92
.inline vis_edge8lcc,8
99
! int vis_edge16cc(void */*frs1*/, void */*frs2*/);
101
.inline vis_edge16cc,8
108
! int vis_edge16lcc(void */*frs1*/, void */*frs2*/);
110
.inline vis_edge16lcc,8
117
! int vis_edge32cc(void */*frs1*/, void */*frs2*/);
119
.inline vis_edge32cc,8
126
! int vis_edge32lcc(void */*frs1*/, void */*frs2*/);
128
.inline vis_edge32lcc,8
135
!--------------------------------------------------------------------
136
! Alignment instructions
138
! void *vis_alignaddr(void */*rs1*/, int /*rs2*/);
140
.inline vis_alignaddr,8
141
alignaddr %o0,%o1,%o0
144
! void *vis_alignaddrl(void */*rs1*/, int /*rs2*/);
146
.inline vis_alignaddrl,8
147
alignaddrl %o0,%o1,%o0
150
! double vis_faligndata(double /*frs1*/, double /*frs2*/);
152
.inline vis_faligndata,16
157
faligndata %f4,%f10,%f0
160
!--------------------------------------------------------------------
161
! Partitioned comparison instructions
163
! int vis_fcmple16(double /*frs1*/, double /*frs2*/);
165
.inline vis_fcmple16,16
170
fcmple16 %f4,%f10,%o0
173
! int vis_fcmpne16(double /*frs1*/, double /*frs2*/);
175
.inline vis_fcmpne16,16
180
fcmpne16 %f4,%f10,%o0
183
! int vis_fcmple32(double /*frs1*/, double /*frs2*/);
185
.inline vis_fcmple32,16
190
fcmple32 %f4,%f10,%o0
193
! int vis_fcmpne32(double /*frs1*/, double /*frs2*/);
195
.inline vis_fcmpne32,16
200
fcmpne32 %f4,%f10,%o0
203
! int vis_fcmpgt16(double /*frs1*/, double /*frs2*/);
205
.inline vis_fcmpgt16,16
210
fcmpgt16 %f4,%f10,%o0
213
! int vis_fcmpeq16(double /*frs1*/, double /*frs2*/);
215
.inline vis_fcmpeq16,16
220
fcmpeq16 %f4,%f10,%o0
223
! int vis_fcmpgt32(double /*frs1*/, double /*frs2*/);
225
.inline vis_fcmpgt32,16
230
fcmpgt32 %f4,%f10,%o0
233
! int vis_fcmpeq32(double /*frs1*/, double /*frs2*/);
235
.inline vis_fcmpeq32,16
240
fcmpeq32 %f4,%f10,%o0
243
!--------------------------------------------------------------------
244
! Partitioned arithmetic
246
! double vis_fmul8x16(float /*frs1*/, double /*frs2*/);
248
.inline vis_fmul8x16,12
254
fmul8x16 %f4,%f10,%f0
257
! double vis_fmul8x16_dummy(float /*frs1*/, int /*dummy*/, double /*frs2*/);
259
.inline vis_fmul8x16_dummy,16
264
fmul8x16 %f4,%f10,%f0
267
! double vis_fmul8x16au(float /*frs1*/, float /*frs2*/);
269
.inline vis_fmul8x16au,8
274
fmul8x16au %f4,%f10,%f0
277
! double vis_fmul8x16al(float /*frs1*/, float /*frs2*/);
279
.inline vis_fmul8x16al,8
284
fmul8x16al %f4,%f10,%f0
287
! double vis_fmul8sux16(double /*frs1*/, double /*frs2*/);
289
.inline vis_fmul8sux16,16
294
fmul8sux16 %f4,%f10,%f0
297
! double vis_fmul8ulx16(double /*frs1*/, double /*frs2*/);
299
.inline vis_fmul8ulx16,16
304
fmul8ulx16 %f4,%f10,%f0
307
! double vis_fmuld8sux16(float /*frs1*/, float /*frs2*/);
309
.inline vis_fmuld8sux16,8
314
fmuld8sux16 %f4,%f10,%f0
317
! double vis_fmuld8ulx16(float /*frs1*/, float /*frs2*/);
319
.inline vis_fmuld8ulx16,8
324
fmuld8ulx16 %f4,%f10,%f0
327
! double vis_fpadd16(double /*frs1*/, double /*frs2*/);
329
.inline vis_fpadd16,16
337
! float vis_fpadd16s(float /*frs1*/, float /*frs2*/);
339
.inline vis_fpadd16s,8
344
fpadd16s %f4,%f10,%f0
347
! double vis_fpadd32(double /*frs1*/, double /*frs2*/);
349
.inline vis_fpadd32,16
357
! float vis_fpadd32s(float /*frs1*/, float /*frs2*/);
359
.inline vis_fpadd32s,8
364
fpadd32s %f4,%f10,%f0
367
! double vis_fpsub16(double /*frs1*/, double /*frs2*/);
369
.inline vis_fpsub16,16
377
! float vis_fpsub16s(float /*frs1*/, float /*frs2*/);
379
.inline vis_fpsub16s,8
384
fpsub16s %f4,%f10,%f0
387
! double vis_fpsub32(double /*frs1*/, double /*frs2*/);
389
.inline vis_fpsub32,16
397
! float vis_fpsub32s(float /*frs1*/, float /*frs2*/);
399
.inline vis_fpsub32s,8
404
fpsub32s %f4,%f10,%f0
407
!--------------------------------------------------------------------
410
! float vis_fpack16(double /*frs2*/);
412
.inline vis_fpack16,8
419
! double vis_fpack16_pair(double /*frs2*/, double /*frs2*/);
421
.inline vis_fpack16_pair,16
430
! void vis_st2_fpack16(double, double, double *)
432
.inline vis_st2_fpack16,20
443
! void vis_std_fpack16(double, double, double *)
445
.inline vis_std_fpack16,20
455
! void vis_st2_fpackfix(double, double, double *)
457
.inline vis_st2_fpackfix,20
468
! double vis_fpack16_to_hi(double /*frs1*/, double /*frs2*/);
470
.inline vis_fpack16_to_hi,16
478
! double vis_fpack16_to_lo(double /*frs1*/, double /*frs2*/);
480
.inline vis_fpack16_to_lo,16
486
fmovs %f3,%f1 /* without this, optimizer goes wrong */
490
! double vis_fpack32(double /*frs1*/, double /*frs2*/);
492
.inline vis_fpack32,16
500
! float vis_fpackfix(double /*frs2*/);
502
.inline vis_fpackfix,8
508
! double vis_fpackfix_pair(double /*frs2*/, double /*frs2*/);
510
.inline vis_fpackfix_pair,16
519
!--------------------------------------------------------------------
522
! double vis_pdist(double /*frs1*/, double /*frs2*/, double /*frd*/);
534
!--------------------------------------------------------------------
537
! double vis_fpmerge(float /*frs1*/, float /*frs2*/);
539
.inline vis_fpmerge,8
547
!--------------------------------------------------------------------
550
! double vis_fexpand(float /*frs2*/);
552
.inline vis_fexpand,4
558
! double vis_fexpand_hi(double /*frs2*/);
560
.inline vis_fexpand_hi,8
566
! double vis_fexpand_lo(double /*frs2*/);
568
.inline vis_fexpand_lo,8
575
!--------------------------------------------------------------------
576
! Bitwise logical operations
578
! double vis_fnor(double /*frs1*/, double /*frs2*/);
588
! float vis_fnors(float /*frs1*/, float /*frs2*/);
598
! double vis_fandnot(double /*frs1*/, double /*frs2*/);
600
.inline vis_fandnot,16
605
fandnot1 %f4,%f10,%f0
608
! float vis_fandnots(float /*frs1*/, float /*frs2*/);
610
.inline vis_fandnots,8
615
fandnot1s %f4,%f10,%f0
618
! double vis_fnot(double /*frs1*/);
626
! float vis_fnots(float /*frs1*/);
634
! double vis_fxor(double /*frs1*/, double /*frs2*/);
644
! float vis_fxors(float /*frs1*/, float /*frs2*/);
654
! double vis_fnand(double /*frs1*/, double /*frs2*/);
664
! float vis_fnands(float /*frs1*/, float /*frs2*/);
674
! double vis_fand(double /*frs1*/, double /*frs2*/);
684
! float vis_fands(float /*frs1*/, float /*frs2*/);
694
! double vis_fxnor(double /*frs1*/, double /*frs2*/);
704
! float vis_fxnors(float /*frs1*/, float /*frs2*/);
714
! double vis_fsrc(double /*frs1*/);
722
! float vis_fsrcs(float /*frs1*/);
730
! double vis_fornot(double /*frs1*/, double /*frs2*/);
732
.inline vis_fornot,16
740
! float vis_fornots(float /*frs1*/, float /*frs2*/);
742
.inline vis_fornots,8
747
fornot1s %f4,%f10,%f0
750
! double vis_for(double /*frs1*/, double /*frs2*/);
760
! float vis_fors(float /*frs1*/, float /*frs2*/);
770
! double vis_fzero(/* void */)
776
! float vis_fzeros(/* void */)
782
! double vis_fone(/* void */)
788
! float vis_fones(/* void */)
794
!--------------------------------------------------------------------
795
! Partial store instructions
797
! vis_stdfa_ASI_PST8P(double frd, void *rs1, int rmask)
799
.inline vis_stdfa_ASI_PST8P,16
802
stda %f4,[%o2]%o3,0xc0 ! ASI_PST8_P
805
! vis_stdfa_ASI_PST8PL(double frd, void *rs1, int rmask)
807
.inline vis_stdfa_ASI_PST8PL,16
810
stda %f4,[%o2]%o3,0xc8 ! ASI_PST8_PL
813
! vis_stdfa_ASI_PST8P_int_pair(void *rs1, void *rs2, void *rs3, int rmask);
815
.inline vis_stdfa_ASI_PST8P_int_pair,16
818
stda %f4,[%o2]%o3,0xc0 ! ASI_PST8_P
821
! vis_stdfa_ASI_PST8S(double frd, void *rs1, int rmask)
823
.inline vis_stdfa_ASI_PST8S,16
826
stda %f4,[%o2]%o3,0xc1 ! ASI_PST8_S
829
! vis_stdfa_ASI_PST16P(double frd, void *rs1, int rmask)
831
.inline vis_stdfa_ASI_PST16P,16
834
stda %f4,[%o2]%o3,0xc2 ! ASI_PST16_P
837
! vis_stdfa_ASI_PST16S(double frd, void *rs1, int rmask)
839
.inline vis_stdfa_ASI_PST16S,16
842
stda %f4,[%o2]%o3,0xc3 ! ASI_PST16_S
845
! vis_stdfa_ASI_PST32P(double frd, void *rs1, int rmask)
847
.inline vis_stdfa_ASI_PST32P,16
850
stda %f4,[%o2]%o3,0xc4 ! ASI_PST32_P
853
! vis_stdfa_ASI_PST32S(double frd, void *rs1, int rmask)
855
.inline vis_stdfa_ASI_PST32S,16
858
stda %f4,[%o2]%o3,0xc5 ! ASI_PST32_S
861
!--------------------------------------------------------------------
862
! Short store instructions
864
! vis_stdfa_ASI_FL8P(double frd, void *rs1)
866
.inline vis_stdfa_ASI_FL8P,12
869
stda %f4,[%o2]0xd0 ! ASI_FL8_P
872
! vis_stdfa_ASI_FL8P_index(double frd, void *rs1, long index)
874
.inline vis_stdfa_ASI_FL8P_index,16
877
stda %f4,[%o2+%o3]0xd0 ! ASI_FL8_P
880
! vis_stdfa_ASI_FL8S(double frd, void *rs1)
882
.inline vis_stdfa_ASI_FL8S,12
885
stda %f4,[%o2]0xd1 ! ASI_FL8_S
888
! vis_stdfa_ASI_FL16P(double frd, void *rs1)
890
.inline vis_stdfa_ASI_FL16P,12
893
stda %f4,[%o2]0xd2 ! ASI_FL16_P
896
! vis_stdfa_ASI_FL16P_index(double frd, void *rs1, long index)
898
.inline vis_stdfa_ASI_FL16P_index,16
901
stda %f4,[%o2+%o3]0xd2 ! ASI_FL16_P
904
! vis_stdfa_ASI_FL16S(double frd, void *rs1)
906
.inline vis_stdfa_ASI_FL16S,12
909
stda %f4,[%o2]0xd3 ! ASI_FL16_S
912
! vis_stdfa_ASI_FL8PL(double frd, void *rs1)
914
.inline vis_stdfa_ASI_FL8PL,12
917
stda %f4,[%o2]0xd8 ! ASI_FL8_PL
920
! vis_stdfa_ASI_FL8SL(double frd, void *rs1)
922
.inline vis_stdfa_ASI_FL8SL,12
925
stda %f4,[%o2]0xd9 ! ASI_FL8_SL
928
! vis_stdfa_ASI_FL16PL(double frd, void *rs1)
930
.inline vis_stdfa_ASI_FL16PL,12
933
stda %f4,[%o2]0xda ! ASI_FL16_PL
936
! vis_stdfa_ASI_FL16SL(double frd, void *rs1)
938
.inline vis_stdfa_ASI_FL16SL,12
941
stda %f4,[%o2]0xdb ! ASI_FL16_SL
944
!--------------------------------------------------------------------
945
! Short load instructions
947
! double vis_lddfa_ASI_FL8P(void *rs1)
949
.inline vis_lddfa_ASI_FL8P,4
950
ldda [%o0]0xd0,%f4 ! ASI_FL8_P
951
fmovd %f4,%f0 ! Compiler can clean this up
954
! double vis_lddfa_ASI_FL8P_index(void *rs1, long index)
956
.inline vis_lddfa_ASI_FL8P_index,8
957
ldda [%o0+%o1]0xd0,%f4
961
! double vis_lddfa_ASI_FL8P_hi(void *rs1, unsigned int index)
963
.inline vis_lddfa_ASI_FL8P_hi,8
965
ldda [%o0+%o1]0xd0,%f4
969
! double vis_lddfa_ASI_FL8P_lo(void *rs1, unsigned int index)
971
.inline vis_lddfa_ASI_FL8P_lo,8
974
ldda [%o0+%o1]0xd0,%f4
978
! double vis_lddfa_ASI_FL8S(void *rs1)
980
.inline vis_lddfa_ASI_FL8S,4
981
ldda [%o0]0xd1,%f4 ! ASI_FL8_S
985
! double vis_lddfa_ASI_FL16P(void *rs1)
987
.inline vis_lddfa_ASI_FL16P,4
988
ldda [%o0]0xd2,%f4 ! ASI_FL16_P
992
! double vis_lddfa_ASI_FL16P_index(void *rs1, long index)
994
.inline vis_lddfa_ASI_FL16P_index,8
995
ldda [%o0+%o1]0xd2,%f4 ! ASI_FL16_P
999
! double vis_lddfa_ASI_FL16S(void *rs1)
1001
.inline vis_lddfa_ASI_FL16S,4
1002
ldda [%o0]0xd3,%f4 ! ASI_FL16_S
1006
! double vis_lddfa_ASI_FL8PL(void *rs1)
1008
.inline vis_lddfa_ASI_FL8PL,4
1009
ldda [%o0]0xd8,%f4 ! ASI_FL8_PL
1013
! double vis_lddfa_ASI_FL8PL_index(void *rs1, long index)
1015
.inline vis_lddfa_ASI_FL8PL_index,8
1016
ldda [%o0+%o1]0xd8,%f4 ! ASI_FL8_PL
1020
! double vis_lddfa_ASI_FL8SL(void *rs1)
1022
.inline vis_lddfa_ASI_FL8SL,4
1023
ldda [%o0]0xd9,%f4 ! ASI_FL8_SL
1027
! double vis_lddfa_ASI_FL16PL(void *rs1)
1029
.inline vis_lddfa_ASI_FL16PL,4
1030
ldda [%o0]0xda,%f4 ! ASI_FL16_PL
1034
! double vis_lddfa_ASI_FL16PL_index(void *rs1, long index)
1036
.inline vis_lddfa_ASI_FL16PL_index,8
1037
ldda [%o0+%o1]0xda,%f4 ! ASI_FL16_PL
1041
! double vis_lddfa_ASI_FL16SL(void *rs1)
1043
.inline vis_lddfa_ASI_FL16SL,4
1044
ldda [%o0]0xdb,%f4 ! ASI_FL16_SL
1048
!--------------------------------------------------------------------
1049
! Graphics status register
1051
! unsigned int vis_read_gsr(void)
1053
.inline vis_read_gsr,0
1057
! void vis_write_gsr(unsigned int /* GSR */)
1059
.inline vis_write_gsr,4
1063
!--------------------------------------------------------------------
1064
! Voxel texture mapping
1066
! unsigned long vis_array8(unsigned long long /*rs1 */, int /*rs2*/)
1068
.inline vis_array8,12
1070
srl %o1,0,%o1 ! clear the most significant 32 bits of %o1
1071
or %o0,%o1,%o3 ! join %o0 and %o1 into %o3
1075
! unsigned long vis_array16(unsigned long long /*rs1*/, int /*rs2*/)
1077
.inline vis_array16,12
1079
srl %o1,0,%o1 ! clear the most significant 32 bits of %o1
1080
or %o0,%o1,%o3 ! join %o0 and %o1 into %o3
1084
! unsigned long vis_array32(unsigned long long /*rs1*/, int /*rs2*/)
1086
.inline vis_array32,12
1088
srl %o1,0,%o1 ! clear the most significant 32 bits of %o1
1089
or %o0,%o1,%o3 ! join %o0 and %o1 into %o3
1093
!--------------------------------------------------------------------
1094
! Register aliasing and type casts
1096
! float vis_read_hi(double /* frs1 */);
1098
.inline vis_read_hi,8
1099
std %o0,[%sp+0x48] ! store double frs1
1100
ldd [%sp+0x48],%f0 ! %f0:%f1 = double frs1; return %f0;
1103
! float vis_read_lo(double /* frs1 */);
1105
.inline vis_read_lo,8
1106
std %o0,[%sp+0x48] ! store double frs1
1107
ldd [%sp+0x48],%f0 ! %f0:%f1 = double frs1;
1108
fmovs %f1,%f0 ! %f0 = low word (frs1); return %f0;
1111
! double vis_write_hi(double /* frs1 */, float /* frs2 */);
1113
.inline vis_write_hi,12
1114
std %o0,[%sp+0x48] ! store double frs1;
1115
ldd [%sp+0x48],%f0 ! %f0:%f1 = double frs1;
1116
st %o2,[%sp+0x44] ! store float frs2;
1117
ld [%sp+0x44],%f2 ! %f2 = float frs2;
1118
fmovs %f2,%f0 ! %f0 = float frs2; return %f0:f1;
1121
! double vis_write_lo(double /* frs1 */, float /* frs2 */);
1123
.inline vis_write_lo,12
1124
std %o0,[%sp+0x48] ! store double frs1;
1125
ldd [%sp+0x48],%f0 ! %f0:%f1 = double frs1;
1126
st %o2,[%sp+0x44] ! store float frs2;
1127
ld [%sp+0x44],%f2 ! %f2 = float frs2;
1128
fmovs %f2,%f1 ! %f1 = float frs2; return %f0:f1;
1131
! double vis_freg_pair(float /* frs1 */, float /* frs2 */);
1133
.inline vis_freg_pair,8
1134
st %o0,[%sp+0x48] ! store float frs1
1136
st %o1,[%sp+0x48] ! store float frs2
1140
! float vis_to_float(unsigned int /*value*/);
1142
.inline vis_to_float,4
1147
! double vis_to_double(unsigned int /*value1*/, unsigned int /*value2*/);
1149
.inline vis_to_double,8
1154
! double vis_to_double_dup(unsigned int /*value*/);
1156
.inline vis_to_double_dup,4
1159
fmovs %f1,%f0 ! duplicate value
1162
! double vis_ll_to_double(unsigned long long /*value*/);
1164
.inline vis_ll_to_double,8
1169
!--------------------------------------------------------------------
1170
! Address space identifier (ASI) register
1172
! unsigned int vis_read_asi(void)
1174
.inline vis_read_asi,0
1178
! void vis_write_asi(unsigned int /* ASI */)
1180
.inline vis_write_asi,4
1184
!--------------------------------------------------------------------
1185
! Load/store from/into alternate space
1187
! float vis_ldfa_ASI_REG(void *rs1)
1189
.inline vis_ldfa_ASI_REG,4
1191
fmovs %f4,%f0 ! Compiler can clean this up
1194
! float vis_ldfa_ASI_P(void *rs1)
1196
.inline vis_ldfa_ASI_P,4
1197
lda [%o0]0x80,%f4 ! ASI_P
1198
fmovs %f4,%f0 ! Compiler can clean this up
1201
! float vis_ldfa_ASI_PL(void *rs1)
1203
.inline vis_ldfa_ASI_PL,4
1204
lda [%o0]0x88,%f4 ! ASI_PL
1205
fmovs %f4,%f0 ! Compiler can clean this up
1208
! double vis_lddfa_ASI_REG(void *rs1)
1210
.inline vis_lddfa_ASI_REG,4
1211
ldda [%o0+0]%asi,%f4
1212
fmovd %f4,%f0 ! Compiler can clean this up
1215
! double vis_lddfa_ASI_P(void *rs1)
1217
.inline vis_lddfa_ASI_P,4
1218
ldda [%o0]0x80,%f4 ! ASI_P
1219
fmovd %f4,%f0 ! Compiler can clean this up
1222
! double vis_lddfa_ASI_PL(void *rs1)
1224
.inline vis_lddfa_ASI_PL,4
1225
ldda [%o0]0x88,%f4 ! ASI_PL
1226
fmovd %f4,%f0 ! Compiler can clean this up
1229
! vis_stfa_ASI_REG(float frs, void *rs1)
1231
.inline vis_stfa_ASI_REG,8
1237
! vis_stfa_ASI_P(float frs, void *rs1)
1239
.inline vis_stfa_ASI_P,8
1242
sta %f4,[%o1]0x80 ! ASI_P
1245
! vis_stfa_ASI_PL(float frs, void *rs1)
1247
.inline vis_stfa_ASI_PL,8
1250
sta %f4,[%o1]0x88 ! ASI_PL
1253
! vis_stdfa_ASI_REG(double frd, void *rs1)
1255
.inline vis_stdfa_ASI_REG,12
1258
stda %f4,[%o2+0]%asi
1261
! vis_stdfa_ASI_P(double frd, void *rs1)
1263
.inline vis_stdfa_ASI_P,12
1266
stda %f4,[%o2]0x80 ! ASI_P
1269
! vis_stdfa_ASI_PL(double frd, void *rs1)
1271
.inline vis_stdfa_ASI_PL,12
1274
stda %f4,[%o2]0x88 ! ASI_PL
1277
! unsigned short vis_lduha_ASI_REG(void *rs1)
1279
.inline vis_lduha_ASI_REG,4
1280
lduha [%o0+0]%asi,%o0
1283
! unsigned short vis_lduha_ASI_P(void *rs1)
1285
.inline vis_lduha_ASI_P,4
1286
lduha [%o0]0x80,%o0 ! ASI_P
1289
! unsigned short vis_lduha_ASI_PL(void *rs1)
1291
.inline vis_lduha_ASI_PL,4
1292
lduha [%o0]0x88,%o0 ! ASI_PL
1295
! unsigned short vis_lduha_ASI_P_index(void *rs1, long index)
1297
.inline vis_lduha_ASI_P_index,8
1298
lduha [%o0+%o1]0x80,%o0 ! ASI_P
1301
! unsigned short vis_lduha_ASI_PL_index(void *rs1, long index)
1303
.inline vis_lduha_ASI_PL_index,8
1304
lduha [%o0+%o1]0x88,%o0 ! ASI_PL
1307
!--------------------------------------------------------------------
1310
! void vis_prefetch_read(void * /*address*/);
1312
.inline vis_prefetch_read,4
1316
! void vis_prefetch_write(void * /*address*/);
1318
.inline vis_prefetch_write,4