rs6000, update effective target for tests builtins-10*.c and vec_perm-runnable-i128.c
[official-gcc.git] / libgo / go / runtime / panic32.go
blobdf4afae4be3f1a9499498089188dfd9e1ddac828
1 // Copyright 2019 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 //go:build 386 || amd64p32 || arm || mips || mipsle || armbe || m68k || nios2 || ppc || riscv || s390 || sh || shbe || sparc
7 package runtime
9 import _ "unsafe" // for go:linkname
11 // For gccgo, use go:linkname to export compiler-called functions.
13 //go:linkname goPanicExtendIndex
14 //go:linkname goPanicExtendIndexU
15 //go:linkname goPanicExtendSliceAlen
16 //go:linkname goPanicExtendSliceAlenU
17 //go:linkname goPanicExtendSliceAcap
18 //go:linkname goPanicExtendSliceAcapU
19 //go:linkname goPanicExtendSliceB
20 //go:linkname goPanicExtendSliceBU
21 //go:linkname goPanicExtendSlice3Alen
22 //go:linkname goPanicExtendSlice3AlenU
23 //go:linkname goPanicExtendSlice3Acap
24 //go:linkname goPanicExtendSlice3AcapU
25 //go:linkname goPanicExtendSlice3B
26 //go:linkname goPanicExtendSlice3BU
27 //go:linkname goPanicExtendSlice3C
28 //go:linkname goPanicExtendSlice3CU
30 // Additional index/slice error paths for 32-bit platforms.
31 // Used when the high word of a 64-bit index is not zero.
33 // failures in the comparisons for s[x], 0 <= x < y (y == len(s))
34 func goPanicExtendIndex(x int64, y int) {
35 panicCheck1(getcallerpc(), "index out of range")
36 panic(boundsError{x: x, signed: true, y: y, code: boundsIndex})
38 func goPanicExtendIndexU(x uint64, y int) {
39 panicCheck1(getcallerpc(), "index out of range")
40 panic(boundsError{x: int64(x), signed: false, y: y, code: boundsIndex})
43 // failures in the comparisons for s[:x], 0 <= x <= y (y == len(s) or cap(s))
44 func goPanicExtendSliceAlen(x int64, y int) {
45 panicCheck1(getcallerpc(), "slice bounds out of range")
46 panic(boundsError{x: x, signed: true, y: y, code: boundsSliceAlen})
48 func goPanicExtendSliceAlenU(x uint64, y int) {
49 panicCheck1(getcallerpc(), "slice bounds out of range")
50 panic(boundsError{x: int64(x), signed: false, y: y, code: boundsSliceAlen})
52 func goPanicExtendSliceAcap(x int64, y int) {
53 panicCheck1(getcallerpc(), "slice bounds out of range")
54 panic(boundsError{x: x, signed: true, y: y, code: boundsSliceAcap})
56 func goPanicExtendSliceAcapU(x uint64, y int) {
57 panicCheck1(getcallerpc(), "slice bounds out of range")
58 panic(boundsError{x: int64(x), signed: false, y: y, code: boundsSliceAcap})
61 // failures in the comparisons for s[x:y], 0 <= x <= y
62 func goPanicExtendSliceB(x int64, y int) {
63 panicCheck1(getcallerpc(), "slice bounds out of range")
64 panic(boundsError{x: x, signed: true, y: y, code: boundsSliceB})
66 func goPanicExtendSliceBU(x uint64, y int) {
67 panicCheck1(getcallerpc(), "slice bounds out of range")
68 panic(boundsError{x: int64(x), signed: false, y: y, code: boundsSliceB})
71 // failures in the comparisons for s[::x], 0 <= x <= y (y == len(s) or cap(s))
72 func goPanicExtendSlice3Alen(x int64, y int) {
73 panicCheck1(getcallerpc(), "slice bounds out of range")
74 panic(boundsError{x: x, signed: true, y: y, code: boundsSlice3Alen})
76 func goPanicExtendSlice3AlenU(x uint64, y int) {
77 panicCheck1(getcallerpc(), "slice bounds out of range")
78 panic(boundsError{x: int64(x), signed: false, y: y, code: boundsSlice3Alen})
80 func goPanicExtendSlice3Acap(x int64, y int) {
81 panicCheck1(getcallerpc(), "slice bounds out of range")
82 panic(boundsError{x: x, signed: true, y: y, code: boundsSlice3Acap})
84 func goPanicExtendSlice3AcapU(x uint64, y int) {
85 panicCheck1(getcallerpc(), "slice bounds out of range")
86 panic(boundsError{x: int64(x), signed: false, y: y, code: boundsSlice3Acap})
89 // failures in the comparisons for s[:x:y], 0 <= x <= y
90 func goPanicExtendSlice3B(x int64, y int) {
91 panicCheck1(getcallerpc(), "slice bounds out of range")
92 panic(boundsError{x: x, signed: true, y: y, code: boundsSlice3B})
94 func goPanicExtendSlice3BU(x uint64, y int) {
95 panicCheck1(getcallerpc(), "slice bounds out of range")
96 panic(boundsError{x: int64(x), signed: false, y: y, code: boundsSlice3B})
99 // failures in the comparisons for s[x:y:], 0 <= x <= y
100 func goPanicExtendSlice3C(x int64, y int) {
101 panicCheck1(getcallerpc(), "slice bounds out of range")
102 panic(boundsError{x: x, signed: true, y: y, code: boundsSlice3C})
104 func goPanicExtendSlice3CU(x uint64, y int) {
105 panicCheck1(getcallerpc(), "slice bounds out of range")
106 panic(boundsError{x: int64(x), signed: false, y: y, code: boundsSlice3C})