detached 0457326

purego: add support for loong64 (#335)

commit
045732660bc4b298c428c8d98716c8eec4266289
author
Meidan Li · · 2025-09-16 13:43 UTC
committer
GitHub · · 2025-09-16 13:43 UTC
parent
0788778
signature
GPG UnverifiedB5690EEEBB952194 The key is unknown
19 files · +4772 -16
M .github/workflows/test.yml +20 -1
@@ -32,7 +32,7 @@ jobs:
3232 if: runner.os == 'Linux'
3333 run: |
3434 sudo apt-get update
35- sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu qemu-user
35+ sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-14-loongarch64-linux-gnu g++-14-loongarch64-linux-gnu qemu-user
3636
3737 - name: Set up the prerequisites
3838 if: runner.os == 'Windows'
@@ -74,6 +74,13 @@ jobs:
7474 env GOOS=netbsd GOARCH=amd64 go build -v ./...
7575 env GOOS=netbsd GOARCH=arm64 go build -v ./...
7676
77+ - name: go build (Linux loong64)
78+ if: ${{ !startsWith(matrix.go, '1.18.') && !startsWith(matrix.go, '1.19.') && !startsWith(matrix.go, '1.20.') && !startsWith(matrix.go, '1.21.') && !startsWith(matrix.go, '1.22.') && !startsWith(matrix.go, '1.23.') && !startsWith(matrix.go, '1.24.') }}
79+ run: |
80+ # Check cross-compiling Linux binaries for loong64.
81+ # Loong64 support internal linking from go1.25.
82+ env GOOS=linux GOARCH=loong64 go build -v ./...
83+
7784 - name: go build (plugin)
7885 if: runner.os == 'Linux' || runner.os == 'macOS'
7986 run:
@@ -123,6 +130,18 @@ jobs:
123130 go env -u CC
124131 go env -u CXX
125132
133+ - name: go test (Linux loong64)
134+ if: ${{ runner.os == 'Linux' && !startsWith(matrix.go, '1.18.') && !startsWith(matrix.go, '1.19.') && !startsWith(matrix.go, '1.20.') && !startsWith(matrix.go, '1.21.') && !startsWith(matrix.go, '1.22.') && !startsWith(matrix.go, '1.23.') && !startsWith(matrix.go, '1.24.') }}
135+ run: |
136+ go env -w CC=loongarch64-linux-gnu-gcc-14
137+ go env -w CXX=loongarch64-linux-gnu-g++-14
138+ env GOOS=linux GOARCH=loong64 CGO_ENABLED=0 go test -c -o=purego-test-nocgo .
139+ env QEMU_LD_PREFIX=/usr/loongarch64-linux-gnu qemu-loongarch64 ./purego-test-nocgo -test.shuffle=on -test.v -test.count=10
140+ env GOOS=linux GOARCH=loong64 CGO_ENABLED=1 go test -c -o=purego-test-cgo .
141+ env QEMU_LD_PREFIX=/usr/loongarch64-linux-gnu qemu-loongarch64 ./purego-test-cgo -test.shuffle=on -test.v -test.count=10
142+ go env -u CC
143+ go env -u CXX
144+
126145 - name: go test (Windows 386)
127146 if: runner.os == 'Windows'
128147 run: |
M README.md +1 -1
@@ -27,7 +27,7 @@ except for float arguments and return values.
2727 ## Supported Platforms
2828
2929 - **FreeBSD**: amd64, arm64
30-- **Linux**: amd64, arm64
30+- **Linux**: amd64, arm64, loong64
3131 - **macOS / iOS**: amd64, arm64
3232 - **Windows**: 386*, amd64, arm*, arm64
3333
A abi_loong64.h +60 -0
@@ -0,0 +1,60 @@
1+// Copyright 2022 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.
4+
5+// Macros for transitioning from the host ABI to Go ABI0.
6+//
7+// These macros save and restore the callee-saved registers
8+// from the stack, but they don't adjust stack pointer, so
9+// the user should prepare stack space in advance.
10+// SAVE_R22_TO_R31(offset) saves R22 ~ R31 to the stack space
11+// of ((offset)+0*8)(R3) ~ ((offset)+9*8)(R3).
12+//
13+// SAVE_F24_TO_F31(offset) saves F24 ~ F31 to the stack space
14+// of ((offset)+0*8)(R3) ~ ((offset)+7*8)(R3).
15+//
16+// Note: g is R22
17+
18+#define SAVE_R22_TO_R31(offset) \
19+ MOVV g, ((offset)+(0*8))(R3) \
20+ MOVV R23, ((offset)+(1*8))(R3) \
21+ MOVV R24, ((offset)+(2*8))(R3) \
22+ MOVV R25, ((offset)+(3*8))(R3) \
23+ MOVV R26, ((offset)+(4*8))(R3) \
24+ MOVV R27, ((offset)+(5*8))(R3) \
25+ MOVV R28, ((offset)+(6*8))(R3) \
26+ MOVV R29, ((offset)+(7*8))(R3) \
27+ MOVV R30, ((offset)+(8*8))(R3) \
28+ MOVV R31, ((offset)+(9*8))(R3)
29+
30+#define SAVE_F24_TO_F31(offset) \
31+ MOVD F24, ((offset)+(0*8))(R3) \
32+ MOVD F25, ((offset)+(1*8))(R3) \
33+ MOVD F26, ((offset)+(2*8))(R3) \
34+ MOVD F27, ((offset)+(3*8))(R3) \
35+ MOVD F28, ((offset)+(4*8))(R3) \
36+ MOVD F29, ((offset)+(5*8))(R3) \
37+ MOVD F30, ((offset)+(6*8))(R3) \
38+ MOVD F31, ((offset)+(7*8))(R3)
39+
40+#define RESTORE_R22_TO_R31(offset) \
41+ MOVV ((offset)+(0*8))(R3), g \
42+ MOVV ((offset)+(1*8))(R3), R23 \
43+ MOVV ((offset)+(2*8))(R3), R24 \
44+ MOVV ((offset)+(3*8))(R3), R25 \
45+ MOVV ((offset)+(4*8))(R3), R26 \
46+ MOVV ((offset)+(5*8))(R3), R27 \
47+ MOVV ((offset)+(6*8))(R3), R28 \
48+ MOVV ((offset)+(7*8))(R3), R29 \
49+ MOVV ((offset)+(8*8))(R3), R30 \
50+ MOVV ((offset)+(9*8))(R3), R31
51+
52+#define RESTORE_F24_TO_F31(offset) \
53+ MOVD ((offset)+(0*8))(R3), F24 \
54+ MOVD ((offset)+(1*8))(R3), F25 \
55+ MOVD ((offset)+(2*8))(R3), F26 \
56+ MOVD ((offset)+(3*8))(R3), F27 \
57+ MOVD ((offset)+(4*8))(R3), F28 \
58+ MOVD ((offset)+(5*8))(R3), F29 \
59+ MOVD ((offset)+(6*8))(R3), F30 \
60+ MOVD ((offset)+(7*8))(R3), F31
M callback_test.go +1 -1
@@ -1,7 +1,7 @@
11 // SPDX-License-Identifier: Apache-2.0
22 // SPDX-FileCopyrightText: 2023 The Ebitengine Authors
33
4-//go:build darwin || (linux && (amd64 || arm64))
4+//go:build darwin || (linux && (amd64 || arm64 || loong64))
55
66 package purego_test
77
M func.go +14 -4
@@ -124,7 +124,7 @@ func RegisterFunc(fptr any, cfn uintptr) {
124124 panic("purego: cfn is nil")
125125 }
126126 if ty.NumOut() == 1 && (ty.Out(0).Kind() == reflect.Float32 || ty.Out(0).Kind() == reflect.Float64) &&
127- runtime.GOARCH != "arm64" && runtime.GOARCH != "amd64" {
127+ runtime.GOARCH != "arm64" && runtime.GOARCH != "amd64" && runtime.GOARCH != "loong64" {
128128 panic("purego: float returns are not supported")
129129 }
130130 {
@@ -257,7 +257,7 @@ func RegisterFunc(fptr any, cfn uintptr) {
257257 var arm64_r8 uintptr
258258 if ty.NumOut() == 1 && ty.Out(0).Kind() == reflect.Struct {
259259 outType := ty.Out(0)
260- if runtime.GOARCH == "amd64" && outType.Size() > maxRegAllocStructSize {
260+ if (runtime.GOARCH == "amd64" || runtime.GOARCH == "loong64") && outType.Size() > maxRegAllocStructSize {
261261 val := reflect.New(outType)
262262 keepAlive = append(keepAlive, val)
263263 addInt(val.Pointer())
@@ -310,7 +310,17 @@ func RegisterFunc(fptr any, cfn uintptr) {
310310 syscall := thePool.Get().(*syscall15Args)
311311 defer thePool.Put(syscall)
312312
313- if runtime.GOARCH == "arm64" || runtime.GOOS != "windows" {
313+ if runtime.GOARCH == "loong64" {
314+ *syscall = syscall15Args{
315+ cfn,
316+ sysargs[0], sysargs[1], sysargs[2], sysargs[3], sysargs[4], sysargs[5],
317+ sysargs[6], sysargs[7], sysargs[8], sysargs[9], sysargs[10], sysargs[11],
318+ sysargs[12], sysargs[13], sysargs[14],
319+ floats[0], floats[1], floats[2], floats[3], floats[4], floats[5], floats[6], floats[7],
320+ 0,
321+ }
322+ runtime_cgocall(syscall15XABI0, unsafe.Pointer(syscall))
323+ } else if runtime.GOARCH == "arm64" || runtime.GOOS != "windows" {
314324 // Use the normal arm64 calling convention even on Windows
315325 *syscall = syscall15Args{
316326 cfn,
@@ -467,7 +477,7 @@ func roundUpTo8(val uintptr) uintptr {
467477
468478 func numOfIntegerRegisters() int {
469479 switch runtime.GOARCH {
470- case "arm64":
480+ case "arm64", "loong64":
471481 return 8
472482 case "amd64":
473483 return 6
M func_test.go +3 -3
@@ -49,7 +49,7 @@ func TestRegisterFunc(t *testing.T) {
4949 }
5050
5151 func Test_qsort(t *testing.T) {
52- if runtime.GOARCH != "arm64" && runtime.GOARCH != "amd64" {
52+ if runtime.GOARCH != "arm64" && runtime.GOARCH != "amd64" && runtime.GOARCH != "loong64" {
5353 t.Skip("Platform doesn't support Floats")
5454 return
5555 }
@@ -78,7 +78,7 @@ func Test_qsort(t *testing.T) {
7878 }
7979
8080 func TestRegisterFunc_Floats(t *testing.T) {
81- if runtime.GOARCH != "arm64" && runtime.GOARCH != "amd64" {
81+ if runtime.GOARCH != "arm64" && runtime.GOARCH != "amd64" && runtime.GOARCH != "loong64" {
8282 t.Skip("Platform doesn't support Floats")
8383 return
8484 }
@@ -117,7 +117,7 @@ func TestRegisterFunc_Floats(t *testing.T) {
117117 }
118118
119119 func TestRegisterLibFunc_Bool(t *testing.T) {
120- if runtime.GOARCH != "arm64" && runtime.GOARCH != "amd64" {
120+ if runtime.GOARCH != "arm64" && runtime.GOARCH != "amd64" && runtime.GOARCH != "loong64" {
121121 t.Skip("Platform doesn't support callbacks")
122122 return
123123 }
M internal/cgo/syscall_cgo_unix.go +1 -1
@@ -1,7 +1,7 @@
11 // SPDX-License-Identifier: Apache-2.0
22 // SPDX-FileCopyrightText: 2022 The Ebitengine Authors
33
4-//go:build freebsd || (linux && !(arm64 || amd64)) || netbsd
4+//go:build freebsd || (linux && !(arm64 || amd64 || loong64)) || netbsd
55
66 package cgo
77
A internal/fakecgo/abi_loong64.h +60 -0
@@ -0,0 +1,60 @@
1+// Copyright 2022 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.
4+
5+// Macros for transitioning from the host ABI to Go ABI0.
6+//
7+// These macros save and restore the callee-saved registers
8+// from the stack, but they don't adjust stack pointer, so
9+// the user should prepare stack space in advance.
10+// SAVE_R22_TO_R31(offset) saves R22 ~ R31 to the stack space
11+// of ((offset)+0*8)(R3) ~ ((offset)+9*8)(R3).
12+//
13+// SAVE_F24_TO_F31(offset) saves F24 ~ F31 to the stack space
14+// of ((offset)+0*8)(R3) ~ ((offset)+7*8)(R3).
15+//
16+// Note: g is R22
17+
18+#define SAVE_R22_TO_R31(offset) \
19+ MOVV g, ((offset)+(0*8))(R3) \
20+ MOVV R23, ((offset)+(1*8))(R3) \
21+ MOVV R24, ((offset)+(2*8))(R3) \
22+ MOVV R25, ((offset)+(3*8))(R3) \
23+ MOVV R26, ((offset)+(4*8))(R3) \
24+ MOVV R27, ((offset)+(5*8))(R3) \
25+ MOVV R28, ((offset)+(6*8))(R3) \
26+ MOVV R29, ((offset)+(7*8))(R3) \
27+ MOVV R30, ((offset)+(8*8))(R3) \
28+ MOVV R31, ((offset)+(9*8))(R3)
29+
30+#define SAVE_F24_TO_F31(offset) \
31+ MOVD F24, ((offset)+(0*8))(R3) \
32+ MOVD F25, ((offset)+(1*8))(R3) \
33+ MOVD F26, ((offset)+(2*8))(R3) \
34+ MOVD F27, ((offset)+(3*8))(R3) \
35+ MOVD F28, ((offset)+(4*8))(R3) \
36+ MOVD F29, ((offset)+(5*8))(R3) \
37+ MOVD F30, ((offset)+(6*8))(R3) \
38+ MOVD F31, ((offset)+(7*8))(R3)
39+
40+#define RESTORE_R22_TO_R31(offset) \
41+ MOVV ((offset)+(0*8))(R3), g \
42+ MOVV ((offset)+(1*8))(R3), R23 \
43+ MOVV ((offset)+(2*8))(R3), R24 \
44+ MOVV ((offset)+(3*8))(R3), R25 \
45+ MOVV ((offset)+(4*8))(R3), R26 \
46+ MOVV ((offset)+(5*8))(R3), R27 \
47+ MOVV ((offset)+(6*8))(R3), R28 \
48+ MOVV ((offset)+(7*8))(R3), R29 \
49+ MOVV ((offset)+(8*8))(R3), R30 \
50+ MOVV ((offset)+(9*8))(R3), R31
51+
52+#define RESTORE_F24_TO_F31(offset) \
53+ MOVD ((offset)+(0*8))(R3), F24 \
54+ MOVD ((offset)+(1*8))(R3), F25 \
55+ MOVD ((offset)+(2*8))(R3), F26 \
56+ MOVD ((offset)+(3*8))(R3), F27 \
57+ MOVD ((offset)+(4*8))(R3), F28 \
58+ MOVD ((offset)+(5*8))(R3), F29 \
59+ MOVD ((offset)+(6*8))(R3), F30 \
60+ MOVD ((offset)+(7*8))(R3), F31
A internal/fakecgo/asm_loong64.s +40 -0
@@ -0,0 +1,40 @@
1+// Copyright 2022 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.
4+
5+#include "textflag.h"
6+#include "abi_loong64.h"
7+
8+// Called by C code generated by cmd/cgo.
9+// func crosscall2(fn, a unsafe.Pointer, n int32, ctxt uintptr)
10+// Saves C callee-saved registers and calls cgocallback with three arguments.
11+// fn is the PC of a func(a unsafe.Pointer) function.
12+TEXT crosscall2(SB),NOSPLIT|NOFRAME,$0
13+ /*
14+ * We still need to save all callee save register as before, and then
15+ * push 3 args for fn (R4, R5, R7), skipping R6.
16+ * Also note that at procedure entry in gc world, 8(R29) will be the
17+ * first arg.
18+ */
19+
20+ ADDV $(-23*8), R3
21+ MOVV R4, (1*8)(R3) // fn unsafe.Pointer
22+ MOVV R5, (2*8)(R3) // a unsafe.Pointer
23+ MOVV R7, (3*8)(R3) // ctxt uintptr
24+
25+ SAVE_R22_TO_R31((4*8))
26+ SAVE_F24_TO_F31((14*8))
27+ MOVV R1, (22*8)(R3)
28+
29+ // Initialize Go ABI environment
30+ JAL runtime·load_g(SB)
31+
32+ JAL runtime·cgocallback(SB)
33+
34+ RESTORE_R22_TO_R31((4*8))
35+ RESTORE_F24_TO_F31((14*8))
36+ MOVV (22*8)(R3), R1
37+
38+ ADDV $(23*8), R3
39+
40+ RET
A internal/fakecgo/go_linux_loong64.go +92 -0
@@ -0,0 +1,92 @@
1+// Copyright 2011 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.
4+
5+//go:build !cgo
6+
7+package fakecgo
8+
9+import "unsafe"
10+
11+//go:nosplit
12+func _cgo_sys_thread_start(ts *ThreadStart) {
13+ var attr pthread_attr_t
14+ var ign, oset sigset_t
15+ var p pthread_t
16+ var size size_t
17+ var err int
18+
19+ sigfillset(&ign)
20+ pthread_sigmask(SIG_SETMASK, &ign, &oset)
21+
22+ pthread_attr_init(&attr)
23+ pthread_attr_getstacksize(&attr, &size)
24+ // Leave stacklo=0 and set stackhi=size; mstart will do the rest.
25+ ts.g.stackhi = uintptr(size)
26+
27+ err = _cgo_try_pthread_create(&p, &attr, unsafe.Pointer(threadentry_trampolineABI0), ts)
28+
29+ pthread_sigmask(SIG_SETMASK, &oset, nil)
30+
31+ if err != 0 {
32+ print("fakecgo: pthread_create failed: ")
33+ println(err)
34+ abort()
35+ }
36+}
37+
38+// threadentry_trampolineABI0 maps the C ABI to Go ABI then calls the Go function
39+//
40+//go:linkname x_threadentry_trampoline threadentry_trampoline
41+var x_threadentry_trampoline byte
42+var threadentry_trampolineABI0 = &x_threadentry_trampoline
43+
44+//go:nosplit
45+func threadentry(v unsafe.Pointer) unsafe.Pointer {
46+ ts := *(*ThreadStart)(v)
47+ free(v)
48+
49+ setg_trampoline(setg_func, uintptr(unsafe.Pointer(ts.g)))
50+
51+ // faking funcs in go is a bit a... involved - but the following works :)
52+ fn := uintptr(unsafe.Pointer(&ts.fn))
53+ (*(*func())(unsafe.Pointer(&fn)))()
54+
55+ return nil
56+}
57+
58+// here we will store a pointer to the provided setg func
59+var setg_func uintptr
60+
61+//go:nosplit
62+func x_cgo_init(g *G, setg uintptr) {
63+ var size size_t
64+ var attr *pthread_attr_t
65+
66+ /* The memory sanitizer distributed with versions of clang
67+ before 3.8 has a bug: if you call mmap before malloc, mmap
68+ may return an address that is later overwritten by the msan
69+ library. Avoid this problem by forcing a call to malloc
70+ here, before we ever call malloc.
71+
72+ This is only required for the memory sanitizer, so it's
73+ unfortunate that we always run it. It should be possible
74+ to remove this when we no longer care about versions of
75+ clang before 3.8. The test for this is
76+ misc/cgo/testsanitizers.
77+
78+ GCC works hard to eliminate a seemingly unnecessary call to
79+ malloc, so we actually use the memory we allocate. */
80+
81+ setg_func = setg
82+ attr = (*pthread_attr_t)(malloc(unsafe.Sizeof(*attr)))
83+ if attr == nil {
84+ println("fakecgo: malloc failed")
85+ abort()
86+ }
87+ pthread_attr_init(attr)
88+ pthread_attr_getstacksize(attr, &size)
89+ g.stacklo = uintptr(unsafe.Pointer(&size)) - uintptr(size) + 4096
90+ pthread_attr_destroy(attr)
91+ free(unsafe.Pointer(attr))
92+}
A internal/fakecgo/trampolines_loong64.s +71 -0
@@ -0,0 +1,71 @@
1+// SPDX-License-Identifier: Apache-2.0
2+// SPDX-FileCopyrightText: 2025 The Ebitengine Authors
3+
4+//go:build !cgo && linux
5+
6+#include "textflag.h"
7+#include "go_asm.h"
8+
9+// these trampolines map the gcc ABI to Go ABI and then calls into the Go equivalent functions.
10+
11+TEXT x_cgo_init_trampoline(SB), NOSPLIT, $16
12+ MOVV R4, 8(R3)
13+ MOVV R5, 16(R3)
14+ MOVV ·x_cgo_init_call(SB), R6
15+ MOVV (R6), R7
16+ CALL (R7)
17+ RET
18+
19+TEXT x_cgo_thread_start_trampoline(SB), NOSPLIT, $8
20+ MOVV R4, 8(R3)
21+ MOVV ·x_cgo_thread_start_call(SB), R5
22+ MOVV (R5), R6
23+ CALL (R6)
24+ RET
25+
26+TEXT x_cgo_setenv_trampoline(SB), NOSPLIT, $8
27+ MOVV R4, 8(R3)
28+ MOVV ·x_cgo_setenv_call(SB), R5
29+ MOVV (R5), R6
30+ CALL (R6)
31+ RET
32+
33+TEXT x_cgo_unsetenv_trampoline(SB), NOSPLIT, $8
34+ MOVV R4, 8(R3)
35+ MOVV ·x_cgo_unsetenv_call(SB), R5
36+ MOVV (R5), R6
37+ CALL (R6)
38+ RET
39+
40+TEXT x_cgo_notify_runtime_init_done_trampoline(SB), NOSPLIT, $0
41+ CALL ·x_cgo_notify_runtime_init_done(SB)
42+ RET
43+
44+TEXT x_cgo_bindm_trampoline(SB), NOSPLIT, $0
45+ CALL ·x_cgo_bindm(SB)
46+ RET
47+
48+// func setg_trampoline(setg uintptr, g uintptr)
49+TEXT ·setg_trampoline(SB), NOSPLIT, $0
50+ MOVV G+8(FP), R4
51+ MOVV setg+0(FP), R5
52+ CALL (R5)
53+ RET
54+
55+TEXT threadentry_trampoline(SB), NOSPLIT, $16
56+ MOVV R4, 8(R3)
57+ MOVV ·threadentry_call(SB), R5
58+ MOVV (R5), R6
59+ CALL (R6)
60+ RET
61+
62+TEXT ·call5(SB), NOSPLIT, $0-0
63+ MOVV fn+0(FP), R9
64+ MOVV a1+8(FP), R4
65+ MOVV a2+16(FP), R5
66+ MOVV a3+24(FP), R6
67+ MOVV a4+32(FP), R7
68+ MOVV a5+40(FP), R8
69+ CALL (R9)
70+ MOVV R4, ret+48(FP)
71+ RET
A struct_loong64.go +190 -0
@@ -0,0 +1,190 @@
1+// SPDX-License-Identifier: Apache-2.0
2+// SPDX-FileCopyrightText: 2025 The Ebitengine Authors
3+
4+package purego
5+
6+import (
7+ "math"
8+ "reflect"
9+ "unsafe"
10+)
11+
12+func getStruct(outType reflect.Type, syscall syscall15Args) (v reflect.Value) {
13+ outSize := outType.Size()
14+ switch {
15+ case outSize == 0:
16+ return reflect.New(outType).Elem()
17+ case outSize <= 8:
18+ r1 := syscall.a1
19+ if isAllFloats, numFields := isAllSameFloat(outType); isAllFloats {
20+ r1 = syscall.f1
21+ if numFields == 2 {
22+ r1 = syscall.f2<<32 | syscall.f1
23+ }
24+ }
25+ return reflect.NewAt(outType, unsafe.Pointer(&struct{ a uintptr }{r1})).Elem()
26+ case outSize <= 16:
27+ r1, r2 := syscall.a1, syscall.a2
28+ if isAllFloats, numFields := isAllSameFloat(outType); isAllFloats {
29+ switch numFields {
30+ case 4:
31+ r1 = syscall.f2<<32 | syscall.f1
32+ r2 = syscall.f4<<32 | syscall.f3
33+ case 3:
34+ r1 = syscall.f2<<32 | syscall.f1
35+ r2 = syscall.f3
36+ case 2:
37+ r1 = syscall.f1
38+ r2 = syscall.f2
39+ default:
40+ panic("unreachable")
41+ }
42+ }
43+ return reflect.NewAt(outType, unsafe.Pointer(&struct{ a, b uintptr }{r1, r2})).Elem()
44+ default:
45+ // create struct from the Go pointer created above
46+ // weird pointer dereference to circumvent go vet
47+ return reflect.NewAt(outType, *(*unsafe.Pointer)(unsafe.Pointer(&syscall.a1))).Elem()
48+ }
49+}
50+
51+const (
52+ _NO_CLASS = 0b00
53+ _FLOAT = 0b01
54+ _INT = 0b11
55+)
56+
57+func addStruct(v reflect.Value, numInts, numFloats, numStack *int, addInt, addFloat, addStack func(uintptr), keepAlive []any) []any {
58+ if v.Type().Size() == 0 {
59+ return keepAlive
60+ }
61+
62+ if size := v.Type().Size(); size <= 16 {
63+ placeRegisters(v, addFloat, addInt)
64+ } else {
65+ keepAlive = placeStack(v, keepAlive, addInt)
66+ }
67+ return keepAlive // the struct was allocated so don't panic
68+}
69+
70+func placeRegisters(v reflect.Value, addFloat func(uintptr), addInt func(uintptr)) {
71+ var val uint64
72+ var shift byte
73+ var flushed bool
74+ class := _NO_CLASS
75+ var place func(v reflect.Value)
76+ place = func(v reflect.Value) {
77+ var numFields int
78+ if v.Kind() == reflect.Struct {
79+ numFields = v.Type().NumField()
80+ } else {
81+ numFields = v.Type().Len()
82+ }
83+ for k := 0; k < numFields; k++ {
84+ flushed = false
85+ var f reflect.Value
86+ if v.Kind() == reflect.Struct {
87+ f = v.Field(k)
88+ } else {
89+ f = v.Index(k)
90+ }
91+ align := byte(f.Type().Align()*8 - 1)
92+ shift = (shift + align) &^ align
93+ if shift >= 64 {
94+ shift = 0
95+ flushed = true
96+ if class == _FLOAT {
97+ addFloat(uintptr(val))
98+ } else {
99+ addInt(uintptr(val))
100+ }
101+ }
102+ switch f.Type().Kind() {
103+ case reflect.Struct:
104+ place(f)
105+ case reflect.Bool:
106+ if f.Bool() {
107+ val |= 1
108+ }
109+ shift += 8
110+ class |= _INT
111+ case reflect.Uint8:
112+ val |= f.Uint() << shift
113+ shift += 8
114+ class |= _INT
115+ case reflect.Uint16:
116+ val |= f.Uint() << shift
117+ shift += 16
118+ class |= _INT
119+ case reflect.Uint32:
120+ val |= f.Uint() << shift
121+ shift += 32
122+ class |= _INT
123+ case reflect.Uint64, reflect.Uint, reflect.Uintptr:
124+ addInt(uintptr(f.Uint()))
125+ shift = 0
126+ flushed = true
127+ class = _NO_CLASS
128+ case reflect.Int8:
129+ val |= uint64(f.Int()&0xFF) << shift
130+ shift += 8
131+ class |= _INT
132+ case reflect.Int16:
133+ val |= uint64(f.Int()&0xFFFF) << shift
134+ shift += 16
135+ class |= _INT
136+ case reflect.Int32:
137+ val |= uint64(f.Int()&0xFFFF_FFFF) << shift
138+ shift += 32
139+ class |= _INT
140+ case reflect.Int64, reflect.Int:
141+ addInt(uintptr(f.Int()))
142+ shift = 0
143+ flushed = true
144+ class = _NO_CLASS
145+ case reflect.Float32:
146+ if class == _FLOAT {
147+ addFloat(uintptr(val))
148+ val = 0
149+ shift = 0
150+ }
151+ val |= uint64(math.Float32bits(float32(f.Float()))) << shift
152+ shift += 32
153+ class |= _FLOAT
154+ case reflect.Float64:
155+ addFloat(uintptr(math.Float64bits(float64(f.Float()))))
156+ shift = 0
157+ flushed = true
158+ class = _NO_CLASS
159+ case reflect.Ptr:
160+ addInt(f.Pointer())
161+ shift = 0
162+ flushed = true
163+ class = _NO_CLASS
164+ case reflect.Array:
165+ place(f)
166+ default:
167+ panic("purego: unsupported kind " + f.Kind().String())
168+ }
169+ }
170+ }
171+ place(v)
172+ if !flushed {
173+ if class == _FLOAT {
174+ addFloat(uintptr(val))
175+ } else {
176+ addInt(uintptr(val))
177+ }
178+ }
179+}
180+
181+func placeStack(v reflect.Value, keepAlive []any, addInt func(uintptr)) []any {
182+ // Struct is too big to be placed in registers.
183+ // Copy to heap and place the pointer in register
184+ ptrStruct := reflect.New(v.Type())
185+ ptrStruct.Elem().Set(v)
186+ ptr := ptrStruct.Elem().Addr().UnsafePointer()
187+ keepAlive = append(keepAlive, ptr)
188+ addInt(uintptr(ptr))
189+ return keepAlive
190+}
M struct_other.go +1 -1
@@ -1,7 +1,7 @@
11 // SPDX-License-Identifier: Apache-2.0
22 // SPDX-FileCopyrightText: 2024 The Ebitengine Authors
33
4-//go:build !amd64 && !arm64
4+//go:build !amd64 && !arm64 && !loong64
55
66 package purego
77
A sys_loong64.s +96 -0
@@ -0,0 +1,96 @@
1+// SPDX-License-Identifier: Apache-2.0
2+// SPDX-FileCopyrightText: 2025 The Ebitengine Authors
3+
4+//go:build linux
5+
6+#include "textflag.h"
7+#include "go_asm.h"
8+#include "funcdata.h"
9+
10+#define STACK_SIZE 64
11+#define PTR_ADDRESS (STACK_SIZE - 8)
12+
13+// syscall15X calls a function in libc on behalf of the syscall package.
14+// syscall15X takes a pointer to a struct like:
15+// struct {
16+// fn uintptr
17+// a1 uintptr
18+// a2 uintptr
19+// a3 uintptr
20+// a4 uintptr
21+// a5 uintptr
22+// a6 uintptr
23+// a7 uintptr
24+// a8 uintptr
25+// a9 uintptr
26+// a10 uintptr
27+// a11 uintptr
28+// a12 uintptr
29+// a13 uintptr
30+// a14 uintptr
31+// a15 uintptr
32+// r1 uintptr
33+// r2 uintptr
34+// err uintptr
35+// }
36+// syscall15X must be called on the g0 stack with the
37+// C calling convention (use libcCall).
38+GLOBL ·syscall15XABI0(SB), NOPTR|RODATA, $8
39+DATA ·syscall15XABI0(SB)/8, $syscall15X(SB)
40+TEXT syscall15X(SB), NOSPLIT, $0
41+ // push structure pointer
42+ SUBV $STACK_SIZE, R3
43+ MOVV R4, PTR_ADDRESS(R3)
44+ MOVV R4, R13
45+
46+ MOVD syscall15Args_f1(R13), F0 // f1
47+ MOVD syscall15Args_f2(R13), F1 // f2
48+ MOVD syscall15Args_f3(R13), F2 // f3
49+ MOVD syscall15Args_f4(R13), F3 // f4
50+ MOVD syscall15Args_f5(R13), F4 // f5
51+ MOVD syscall15Args_f6(R13), F5 // f6
52+ MOVD syscall15Args_f7(R13), F6 // f7
53+ MOVD syscall15Args_f8(R13), F7 // f8
54+
55+ MOVV syscall15Args_a1(R13), R4 // a1
56+ MOVV syscall15Args_a2(R13), R5 // a2
57+ MOVV syscall15Args_a3(R13), R6 // a3
58+ MOVV syscall15Args_a4(R13), R7 // a4
59+ MOVV syscall15Args_a5(R13), R8 // a5
60+ MOVV syscall15Args_a6(R13), R9 // a6
61+ MOVV syscall15Args_a7(R13), R10 // a7
62+ MOVV syscall15Args_a8(R13), R11 // a8
63+
64+ // push a9-a15 onto stack
65+ MOVV syscall15Args_a9(R13), R12
66+ MOVV R12, 0(R3)
67+ MOVV syscall15Args_a10(R13), R12
68+ MOVV R12, 8(R3)
69+ MOVV syscall15Args_a11(R13), R12
70+ MOVV R12, 16(R3)
71+ MOVV syscall15Args_a12(R13), R12
72+ MOVV R12, 24(R3)
73+ MOVV syscall15Args_a13(R13), R12
74+ MOVV R12, 32(R3)
75+ MOVV syscall15Args_a14(R13), R12
76+ MOVV R12, 40(R3)
77+ MOVV syscall15Args_a15(R13), R12
78+ MOVV R12, 48(R3)
79+
80+ MOVV syscall15Args_fn(R13), R12
81+ JAL (R12)
82+
83+ // pop structure pointer
84+ MOVV PTR_ADDRESS(R3), R13
85+ ADDV $STACK_SIZE, R3
86+
87+ // save R4, R5
88+ MOVV R4, syscall15Args_a1(R13)
89+ MOVV R5, syscall15Args_a2(R13)
90+
91+ // save f0-f3
92+ MOVD F0, syscall15Args_f1(R13)
93+ MOVD F1, syscall15Args_f2(R13)
94+ MOVD F2, syscall15Args_f3(R13)
95+ MOVD F3, syscall15Args_f4(R13)
96+ RET
A sys_unix_loong64.s +75 -0
@@ -0,0 +1,75 @@
1+// SPDX-License-Identifier: Apache-2.0
2+// SPDX-FileCopyrightText: 2025 The Ebitengine Authors
3+
4+//go:build linux
5+
6+#include "textflag.h"
7+#include "go_asm.h"
8+#include "funcdata.h"
9+#include "abi_loong64.h"
10+
11+TEXT callbackasm1(SB), NOSPLIT|NOFRAME, $0
12+ NO_LOCAL_POINTERS
13+
14+ SUBV $(16*8), R3, R14
15+ MOVD F0, 0(R14)
16+ MOVD F1, 8(R14)
17+ MOVD F2, 16(R14)
18+ MOVD F3, 24(R14)
19+ MOVD F4, 32(R14)
20+ MOVD F5, 40(R14)
21+ MOVD F6, 48(R14)
22+ MOVD F7, 56(R14)
23+ MOVV R4, 64(R14)
24+ MOVV R5, 72(R14)
25+ MOVV R6, 80(R14)
26+ MOVV R7, 88(R14)
27+ MOVV R8, 96(R14)
28+ MOVV R9, 104(R14)
29+ MOVV R10, 112(R14)
30+ MOVV R11, 120(R14)
31+
32+ // Adjust SP by frame size.
33+ SUBV $(22*8), R3
34+
35+ // It is important to save R30 because the go assembler
36+ // uses it for move instructions for a variable.
37+ // This line:
38+ // MOVV ·callbackWrap_call(SB), R4
39+ // Creates the instructions:
40+ // PCALAU12I off1(PC), R30
41+ // MOVV off2(R30), R4
42+ // R30 is a callee saved register so we are responsible
43+ // for ensuring its value doesn't change. So save it and
44+ // restore it at the end of this function.
45+ // R1 is the link register. crosscall2 doesn't save it
46+ // so it's saved here.
47+ MOVV R1, 0(R3)
48+ MOVV R30, 8(R3)
49+
50+ // Create a struct callbackArgs on our stack.
51+ MOVV $(callbackArgs__size)(R3), R13
52+ MOVV R12, callbackArgs_index(R13) // callback index
53+ MOVV R14, callbackArgs_args(R13) // address of args vector
54+ MOVV $0, callbackArgs_result(R13) // result
55+
56+ // Move parameters into registers
57+ // Get the ABIInternal function pointer
58+ // without <ABIInternal> by using a closure.
59+ MOVV ·callbackWrap_call(SB), R4
60+ MOVV (R4), R4 // fn unsafe.Pointer
61+ MOVV R13, R5 // frame (&callbackArgs{...})
62+ MOVV $0, R7 // ctxt uintptr
63+
64+ JAL crosscall2(SB)
65+
66+ // Get callback result.
67+ MOVV $(callbackArgs__size)(R3), R13
68+ MOVV callbackArgs_result(R13), R4
69+
70+ // Restore LR and R30
71+ MOVV 0(R3), R1
72+ MOVV 8(R3), R30
73+ ADDV $(22*8), R3
74+
75+ RET
M syscall_cgo_linux.go +2 -2
@@ -1,7 +1,7 @@
11 // SPDX-License-Identifier: Apache-2.0
22 // SPDX-FileCopyrightText: 2022 The Ebitengine Authors
33
4-//go:build cgo && !(amd64 || arm64)
4+//go:build cgo && !(amd64 || arm64 || loong64)
55
66 package purego
77
@@ -17,5 +17,5 @@ func syscall_syscall15X(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a
1717 }
1818
1919 func NewCallback(_ any) uintptr {
20- panic("purego: NewCallback on Linux is only supported on amd64/arm64")
20+ panic("purego: NewCallback on Linux is only supported on amd64/arm64/loong64")
2121 }
M syscall_sysv.go +2 -2
@@ -1,7 +1,7 @@
11 // SPDX-License-Identifier: Apache-2.0
22 // SPDX-FileCopyrightText: 2022 The Ebitengine Authors
33
4-//go:build darwin || freebsd || (linux && (amd64 || arm64)) || netbsd
4+//go:build darwin || freebsd || (linux && (amd64 || arm64 || loong64)) || netbsd
55
66 package purego
77
@@ -217,7 +217,7 @@ func callbackasmAddr(i int) uintptr {
217217 panic("purego: unsupported architecture")
218218 case "386", "amd64":
219219 entrySize = 5
220- case "arm", "arm64":
220+ case "arm", "arm64", "loong64":
221221 // On ARM and ARM64, each entry is a MOV instruction
222222 // followed by a branch instruction
223223 entrySize = 8
M wincallback.go +29 -0
@@ -72,7 +72,36 @@ TEXT callbackasm(SB),NOSPLIT|NOFRAME,$0
7272 }
7373 }
7474
75+func genasmLoong64() {
76+ var buf bytes.Buffer
77+
78+ buf.WriteString(`// Code generated by wincallback.go using 'go generate'. DO NOT EDIT.
79+
80+//go:build darwin || freebsd || linux || netbsd
81+
82+// External code calls into callbackasm at an offset corresponding
83+// to the callback index. Callbackasm is a table of MOVV and JMP instructions.
84+// The MOVV instruction loads R12 with the callback index, and the
85+// JMP instruction branches to callbackasm1.
86+// callbackasm1 takes the callback index from R12 and
87+// indexes into an array that stores information about each callback.
88+// It then calls the Go implementation for that callback.
89+#include "textflag.h"
90+
91+TEXT callbackasm(SB),NOSPLIT|NOFRAME,$0
92+`)
93+ for i := 0; i < maxCallback; i++ {
94+ fmt.Fprintf(&buf, "\tMOVV\t$%d, R13\n", i)
95+ buf.WriteString("\tJMP\tcallbackasm1(SB)\n")
96+ }
97+ if err := os.WriteFile("zcallback_loong64.s", buf.Bytes(), 0644); err != nil {
98+ fmt.Fprintf(os.Stderr, "wincallback: %s\n", err)
99+ os.Exit(2)
100+ }
101+}
102+
75103 func main() {
76104 genasmAmd64()
77105 genasmArm64()
106+ genasmLoong64()
78107 }
A zcallback_loong64.s +4014 -0
@@ -0,0 +1,4014 @@
1+// Code generated by wincallback.go using 'go generate'. DO NOT EDIT.
2+
3+//go:build darwin || freebsd || linux || netbsd
4+
5+// External code calls into callbackasm at an offset corresponding
6+// to the callback index. Callbackasm is a table of MOVV and JMP instructions.
7+// The MOVV instruction loads R12 with the callback index, and the
8+// JMP instruction branches to callbackasm1.
9+// callbackasm1 takes the callback index from R12 and
10+// indexes into an array that stores information about each callback.
11+// It then calls the Go implementation for that callback.
12+#include "textflag.h"
13+
14+TEXT callbackasm(SB),NOSPLIT|NOFRAME,$0
15+ MOVV $0, R12
16+ JMP callbackasm1(SB)
17+ MOVV $1, R12
18+ JMP callbackasm1(SB)
19+ MOVV $2, R12
20+ JMP callbackasm1(SB)
21+ MOVV $3, R12
22+ JMP callbackasm1(SB)
23+ MOVV $4, R12
24+ JMP callbackasm1(SB)
25+ MOVV $5, R12
26+ JMP callbackasm1(SB)
27+ MOVV $6, R12
28+ JMP callbackasm1(SB)
29+ MOVV $7, R12
30+ JMP callbackasm1(SB)
31+ MOVV $8, R12
32+ JMP callbackasm1(SB)
33+ MOVV $9, R12
34+ JMP callbackasm1(SB)
35+ MOVV $10, R12
36+ JMP callbackasm1(SB)
37+ MOVV $11, R12
38+ JMP callbackasm1(SB)
39+ MOVV $12, R12
40+ JMP callbackasm1(SB)
41+ MOVV $13, R12
42+ JMP callbackasm1(SB)
43+ MOVV $14, R12
44+ JMP callbackasm1(SB)
45+ MOVV $15, R12
46+ JMP callbackasm1(SB)
47+ MOVV $16, R12
48+ JMP callbackasm1(SB)
49+ MOVV $17, R12
50+ JMP callbackasm1(SB)
51+ MOVV $18, R12
52+ JMP callbackasm1(SB)
53+ MOVV $19, R12
54+ JMP callbackasm1(SB)
55+ MOVV $20, R12
56+ JMP callbackasm1(SB)
57+ MOVV $21, R12
58+ JMP callbackasm1(SB)
59+ MOVV $22, R12
60+ JMP callbackasm1(SB)
61+ MOVV $23, R12
62+ JMP callbackasm1(SB)
63+ MOVV $24, R12
64+ JMP callbackasm1(SB)
65+ MOVV $25, R12
66+ JMP callbackasm1(SB)
67+ MOVV $26, R12
68+ JMP callbackasm1(SB)
69+ MOVV $27, R12
70+ JMP callbackasm1(SB)
71+ MOVV $28, R12
72+ JMP callbackasm1(SB)
73+ MOVV $29, R12
74+ JMP callbackasm1(SB)
75+ MOVV $30, R12
76+ JMP callbackasm1(SB)
77+ MOVV $31, R12
78+ JMP callbackasm1(SB)
79+ MOVV $32, R12
80+ JMP callbackasm1(SB)
81+ MOVV $33, R12
82+ JMP callbackasm1(SB)
83+ MOVV $34, R12
84+ JMP callbackasm1(SB)
85+ MOVV $35, R12
86+ JMP callbackasm1(SB)
87+ MOVV $36, R12
88+ JMP callbackasm1(SB)
89+ MOVV $37, R12
90+ JMP callbackasm1(SB)
91+ MOVV $38, R12
92+ JMP callbackasm1(SB)
93+ MOVV $39, R12
94+ JMP callbackasm1(SB)
95+ MOVV $40, R12
96+ JMP callbackasm1(SB)
97+ MOVV $41, R12
98+ JMP callbackasm1(SB)
99+ MOVV $42, R12
100+ JMP callbackasm1(SB)
101+ MOVV $43, R12
102+ JMP callbackasm1(SB)
103+ MOVV $44, R12
104+ JMP callbackasm1(SB)
105+ MOVV $45, R12
106+ JMP callbackasm1(SB)
107+ MOVV $46, R12
108+ JMP callbackasm1(SB)
109+ MOVV $47, R12
110+ JMP callbackasm1(SB)
111+ MOVV $48, R12
112+ JMP callbackasm1(SB)
113+ MOVV $49, R12
114+ JMP callbackasm1(SB)
115+ MOVV $50, R12
116+ JMP callbackasm1(SB)
117+ MOVV $51, R12
118+ JMP callbackasm1(SB)
119+ MOVV $52, R12
120+ JMP callbackasm1(SB)
121+ MOVV $53, R12
122+ JMP callbackasm1(SB)
123+ MOVV $54, R12
124+ JMP callbackasm1(SB)
125+ MOVV $55, R12
126+ JMP callbackasm1(SB)
127+ MOVV $56, R12
128+ JMP callbackasm1(SB)
129+ MOVV $57, R12
130+ JMP callbackasm1(SB)
131+ MOVV $58, R12
132+ JMP callbackasm1(SB)
133+ MOVV $59, R12
134+ JMP callbackasm1(SB)
135+ MOVV $60, R12
136+ JMP callbackasm1(SB)
137+ MOVV $61, R12
138+ JMP callbackasm1(SB)
139+ MOVV $62, R12
140+ JMP callbackasm1(SB)
141+ MOVV $63, R12
142+ JMP callbackasm1(SB)
143+ MOVV $64, R12
144+ JMP callbackasm1(SB)
145+ MOVV $65, R12
146+ JMP callbackasm1(SB)
147+ MOVV $66, R12
148+ JMP callbackasm1(SB)
149+ MOVV $67, R12
150+ JMP callbackasm1(SB)
151+ MOVV $68, R12
152+ JMP callbackasm1(SB)
153+ MOVV $69, R12
154+ JMP callbackasm1(SB)
155+ MOVV $70, R12
156+ JMP callbackasm1(SB)
157+ MOVV $71, R12
158+ JMP callbackasm1(SB)
159+ MOVV $72, R12
160+ JMP callbackasm1(SB)
161+ MOVV $73, R12
162+ JMP callbackasm1(SB)
163+ MOVV $74, R12
164+ JMP callbackasm1(SB)
165+ MOVV $75, R12
166+ JMP callbackasm1(SB)
167+ MOVV $76, R12
168+ JMP callbackasm1(SB)
169+ MOVV $77, R12
170+ JMP callbackasm1(SB)
171+ MOVV $78, R12
172+ JMP callbackasm1(SB)
173+ MOVV $79, R12
174+ JMP callbackasm1(SB)
175+ MOVV $80, R12
176+ JMP callbackasm1(SB)
177+ MOVV $81, R12
178+ JMP callbackasm1(SB)
179+ MOVV $82, R12
180+ JMP callbackasm1(SB)
181+ MOVV $83, R12
182+ JMP callbackasm1(SB)
183+ MOVV $84, R12
184+ JMP callbackasm1(SB)
185+ MOVV $85, R12
186+ JMP callbackasm1(SB)
187+ MOVV $86, R12
188+ JMP callbackasm1(SB)
189+ MOVV $87, R12
190+ JMP callbackasm1(SB)
191+ MOVV $88, R12
192+ JMP callbackasm1(SB)
193+ MOVV $89, R12
194+ JMP callbackasm1(SB)
195+ MOVV $90, R12
196+ JMP callbackasm1(SB)
197+ MOVV $91, R12
198+ JMP callbackasm1(SB)
199+ MOVV $92, R12
200+ JMP callbackasm1(SB)
201+ MOVV $93, R12
202+ JMP callbackasm1(SB)
203+ MOVV $94, R12
204+ JMP callbackasm1(SB)
205+ MOVV $95, R12
206+ JMP callbackasm1(SB)
207+ MOVV $96, R12
208+ JMP callbackasm1(SB)
209+ MOVV $97, R12
210+ JMP callbackasm1(SB)
211+ MOVV $98, R12
212+ JMP callbackasm1(SB)
213+ MOVV $99, R12
214+ JMP callbackasm1(SB)
215+ MOVV $100, R12
216+ JMP callbackasm1(SB)
217+ MOVV $101, R12
218+ JMP callbackasm1(SB)
219+ MOVV $102, R12
220+ JMP callbackasm1(SB)
221+ MOVV $103, R12
222+ JMP callbackasm1(SB)
223+ MOVV $104, R12
224+ JMP callbackasm1(SB)
225+ MOVV $105, R12
226+ JMP callbackasm1(SB)
227+ MOVV $106, R12
228+ JMP callbackasm1(SB)
229+ MOVV $107, R12
230+ JMP callbackasm1(SB)
231+ MOVV $108, R12
232+ JMP callbackasm1(SB)
233+ MOVV $109, R12
234+ JMP callbackasm1(SB)
235+ MOVV $110, R12
236+ JMP callbackasm1(SB)
237+ MOVV $111, R12
238+ JMP callbackasm1(SB)
239+ MOVV $112, R12
240+ JMP callbackasm1(SB)
241+ MOVV $113, R12
242+ JMP callbackasm1(SB)
243+ MOVV $114, R12
244+ JMP callbackasm1(SB)
245+ MOVV $115, R12
246+ JMP callbackasm1(SB)
247+ MOVV $116, R12
248+ JMP callbackasm1(SB)
249+ MOVV $117, R12
250+ JMP callbackasm1(SB)
251+ MOVV $118, R12
252+ JMP callbackasm1(SB)
253+ MOVV $119, R12
254+ JMP callbackasm1(SB)
255+ MOVV $120, R12
256+ JMP callbackasm1(SB)
257+ MOVV $121, R12
258+ JMP callbackasm1(SB)
259+ MOVV $122, R12
260+ JMP callbackasm1(SB)
261+ MOVV $123, R12
262+ JMP callbackasm1(SB)
263+ MOVV $124, R12
264+ JMP callbackasm1(SB)
265+ MOVV $125, R12
266+ JMP callbackasm1(SB)
267+ MOVV $126, R12
268+ JMP callbackasm1(SB)
269+ MOVV $127, R12
270+ JMP callbackasm1(SB)
271+ MOVV $128, R12
272+ JMP callbackasm1(SB)
273+ MOVV $129, R12
274+ JMP callbackasm1(SB)
275+ MOVV $130, R12
276+ JMP callbackasm1(SB)
277+ MOVV $131, R12
278+ JMP callbackasm1(SB)
279+ MOVV $132, R12
280+ JMP callbackasm1(SB)
281+ MOVV $133, R12
282+ JMP callbackasm1(SB)
283+ MOVV $134, R12
284+ JMP callbackasm1(SB)
285+ MOVV $135, R12
286+ JMP callbackasm1(SB)
287+ MOVV $136, R12
288+ JMP callbackasm1(SB)
289+ MOVV $137, R12
290+ JMP callbackasm1(SB)
291+ MOVV $138, R12
292+ JMP callbackasm1(SB)
293+ MOVV $139, R12
294+ JMP callbackasm1(SB)
295+ MOVV $140, R12
296+ JMP callbackasm1(SB)
297+ MOVV $141, R12
298+ JMP callbackasm1(SB)
299+ MOVV $142, R12
300+ JMP callbackasm1(SB)
301+ MOVV $143, R12
302+ JMP callbackasm1(SB)
303+ MOVV $144, R12
304+ JMP callbackasm1(SB)
305+ MOVV $145, R12
306+ JMP callbackasm1(SB)
307+ MOVV $146, R12
308+ JMP callbackasm1(SB)
309+ MOVV $147, R12
310+ JMP callbackasm1(SB)
311+ MOVV $148, R12
312+ JMP callbackasm1(SB)
313+ MOVV $149, R12
314+ JMP callbackasm1(SB)
315+ MOVV $150, R12
316+ JMP callbackasm1(SB)
317+ MOVV $151, R12
318+ JMP callbackasm1(SB)
319+ MOVV $152, R12
320+ JMP callbackasm1(SB)
321+ MOVV $153, R12
322+ JMP callbackasm1(SB)
323+ MOVV $154, R12
324+ JMP callbackasm1(SB)
325+ MOVV $155, R12
326+ JMP callbackasm1(SB)
327+ MOVV $156, R12
328+ JMP callbackasm1(SB)
329+ MOVV $157, R12
330+ JMP callbackasm1(SB)
331+ MOVV $158, R12
332+ JMP callbackasm1(SB)
333+ MOVV $159, R12
334+ JMP callbackasm1(SB)
335+ MOVV $160, R12
336+ JMP callbackasm1(SB)
337+ MOVV $161, R12
338+ JMP callbackasm1(SB)
339+ MOVV $162, R12
340+ JMP callbackasm1(SB)
341+ MOVV $163, R12
342+ JMP callbackasm1(SB)
343+ MOVV $164, R12
344+ JMP callbackasm1(SB)
345+ MOVV $165, R12
346+ JMP callbackasm1(SB)
347+ MOVV $166, R12
348+ JMP callbackasm1(SB)
349+ MOVV $167, R12
350+ JMP callbackasm1(SB)
351+ MOVV $168, R12
352+ JMP callbackasm1(SB)
353+ MOVV $169, R12
354+ JMP callbackasm1(SB)
355+ MOVV $170, R12
356+ JMP callbackasm1(SB)
357+ MOVV $171, R12
358+ JMP callbackasm1(SB)
359+ MOVV $172, R12
360+ JMP callbackasm1(SB)
361+ MOVV $173, R12
362+ JMP callbackasm1(SB)
363+ MOVV $174, R12
364+ JMP callbackasm1(SB)
365+ MOVV $175, R12
366+ JMP callbackasm1(SB)
367+ MOVV $176, R12
368+ JMP callbackasm1(SB)
369+ MOVV $177, R12
370+ JMP callbackasm1(SB)
371+ MOVV $178, R12
372+ JMP callbackasm1(SB)
373+ MOVV $179, R12
374+ JMP callbackasm1(SB)
375+ MOVV $180, R12
376+ JMP callbackasm1(SB)
377+ MOVV $181, R12
378+ JMP callbackasm1(SB)
379+ MOVV $182, R12
380+ JMP callbackasm1(SB)
381+ MOVV $183, R12
382+ JMP callbackasm1(SB)
383+ MOVV $184, R12
384+ JMP callbackasm1(SB)
385+ MOVV $185, R12
386+ JMP callbackasm1(SB)
387+ MOVV $186, R12
388+ JMP callbackasm1(SB)
389+ MOVV $187, R12
390+ JMP callbackasm1(SB)
391+ MOVV $188, R12
392+ JMP callbackasm1(SB)
393+ MOVV $189, R12
394+ JMP callbackasm1(SB)
395+ MOVV $190, R12
396+ JMP callbackasm1(SB)
397+ MOVV $191, R12
398+ JMP callbackasm1(SB)
399+ MOVV $192, R12
400+ JMP callbackasm1(SB)
401+ MOVV $193, R12
402+ JMP callbackasm1(SB)
403+ MOVV $194, R12
404+ JMP callbackasm1(SB)
405+ MOVV $195, R12
406+ JMP callbackasm1(SB)
407+ MOVV $196, R12
408+ JMP callbackasm1(SB)
409+ MOVV $197, R12
410+ JMP callbackasm1(SB)
411+ MOVV $198, R12
412+ JMP callbackasm1(SB)
413+ MOVV $199, R12
414+ JMP callbackasm1(SB)
415+ MOVV $200, R12
416+ JMP callbackasm1(SB)
417+ MOVV $201, R12
418+ JMP callbackasm1(SB)
419+ MOVV $202, R12
420+ JMP callbackasm1(SB)
421+ MOVV $203, R12
422+ JMP callbackasm1(SB)
423+ MOVV $204, R12
424+ JMP callbackasm1(SB)
425+ MOVV $205, R12
426+ JMP callbackasm1(SB)
427+ MOVV $206, R12
428+ JMP callbackasm1(SB)
429+ MOVV $207, R12
430+ JMP callbackasm1(SB)
431+ MOVV $208, R12
432+ JMP callbackasm1(SB)
433+ MOVV $209, R12
434+ JMP callbackasm1(SB)
435+ MOVV $210, R12
436+ JMP callbackasm1(SB)
437+ MOVV $211, R12
438+ JMP callbackasm1(SB)
439+ MOVV $212, R12
440+ JMP callbackasm1(SB)
441+ MOVV $213, R12
442+ JMP callbackasm1(SB)
443+ MOVV $214, R12
444+ JMP callbackasm1(SB)
445+ MOVV $215, R12
446+ JMP callbackasm1(SB)
447+ MOVV $216, R12
448+ JMP callbackasm1(SB)
449+ MOVV $217, R12
450+ JMP callbackasm1(SB)
451+ MOVV $218, R12
452+ JMP callbackasm1(SB)
453+ MOVV $219, R12
454+ JMP callbackasm1(SB)
455+ MOVV $220, R12
456+ JMP callbackasm1(SB)
457+ MOVV $221, R12
458+ JMP callbackasm1(SB)
459+ MOVV $222, R12
460+ JMP callbackasm1(SB)
461+ MOVV $223, R12
462+ JMP callbackasm1(SB)
463+ MOVV $224, R12
464+ JMP callbackasm1(SB)
465+ MOVV $225, R12
466+ JMP callbackasm1(SB)
467+ MOVV $226, R12
468+ JMP callbackasm1(SB)
469+ MOVV $227, R12
470+ JMP callbackasm1(SB)
471+ MOVV $228, R12
472+ JMP callbackasm1(SB)
473+ MOVV $229, R12
474+ JMP callbackasm1(SB)
475+ MOVV $230, R12
476+ JMP callbackasm1(SB)
477+ MOVV $231, R12
478+ JMP callbackasm1(SB)
479+ MOVV $232, R12
480+ JMP callbackasm1(SB)
481+ MOVV $233, R12
482+ JMP callbackasm1(SB)
483+ MOVV $234, R12
484+ JMP callbackasm1(SB)
485+ MOVV $235, R12
486+ JMP callbackasm1(SB)
487+ MOVV $236, R12
488+ JMP callbackasm1(SB)
489+ MOVV $237, R12
490+ JMP callbackasm1(SB)
491+ MOVV $238, R12
492+ JMP callbackasm1(SB)
493+ MOVV $239, R12
494+ JMP callbackasm1(SB)
495+ MOVV $240, R12
496+ JMP callbackasm1(SB)
497+ MOVV $241, R12
498+ JMP callbackasm1(SB)
499+ MOVV $242, R12
500+ JMP callbackasm1(SB)
501+ MOVV $243, R12
502+ JMP callbackasm1(SB)
503+ MOVV $244, R12
504+ JMP callbackasm1(SB)
505+ MOVV $245, R12
506+ JMP callbackasm1(SB)
507+ MOVV $246, R12
508+ JMP callbackasm1(SB)
509+ MOVV $247, R12
510+ JMP callbackasm1(SB)
511+ MOVV $248, R12
512+ JMP callbackasm1(SB)
513+ MOVV $249, R12
514+ JMP callbackasm1(SB)
515+ MOVV $250, R12
516+ JMP callbackasm1(SB)
517+ MOVV $251, R12
518+ JMP callbackasm1(SB)
519+ MOVV $252, R12
520+ JMP callbackasm1(SB)
521+ MOVV $253, R12
522+ JMP callbackasm1(SB)
523+ MOVV $254, R12
524+ JMP callbackasm1(SB)
525+ MOVV $255, R12
526+ JMP callbackasm1(SB)
527+ MOVV $256, R12
528+ JMP callbackasm1(SB)
529+ MOVV $257, R12
530+ JMP callbackasm1(SB)
531+ MOVV $258, R12
532+ JMP callbackasm1(SB)
533+ MOVV $259, R12
534+ JMP callbackasm1(SB)
535+ MOVV $260, R12
536+ JMP callbackasm1(SB)
537+ MOVV $261, R12
538+ JMP callbackasm1(SB)
539+ MOVV $262, R12
540+ JMP callbackasm1(SB)
541+ MOVV $263, R12
542+ JMP callbackasm1(SB)
543+ MOVV $264, R12
544+ JMP callbackasm1(SB)
545+ MOVV $265, R12
546+ JMP callbackasm1(SB)
547+ MOVV $266, R12
548+ JMP callbackasm1(SB)
549+ MOVV $267, R12
550+ JMP callbackasm1(SB)
551+ MOVV $268, R12
552+ JMP callbackasm1(SB)
553+ MOVV $269, R12
554+ JMP callbackasm1(SB)
555+ MOVV $270, R12
556+ JMP callbackasm1(SB)
557+ MOVV $271, R12
558+ JMP callbackasm1(SB)
559+ MOVV $272, R12
560+ JMP callbackasm1(SB)
561+ MOVV $273, R12
562+ JMP callbackasm1(SB)
563+ MOVV $274, R12
564+ JMP callbackasm1(SB)
565+ MOVV $275, R12
566+ JMP callbackasm1(SB)
567+ MOVV $276, R12
568+ JMP callbackasm1(SB)
569+ MOVV $277, R12
570+ JMP callbackasm1(SB)
571+ MOVV $278, R12
572+ JMP callbackasm1(SB)
573+ MOVV $279, R12
574+ JMP callbackasm1(SB)
575+ MOVV $280, R12
576+ JMP callbackasm1(SB)
577+ MOVV $281, R12
578+ JMP callbackasm1(SB)
579+ MOVV $282, R12
580+ JMP callbackasm1(SB)
581+ MOVV $283, R12
582+ JMP callbackasm1(SB)
583+ MOVV $284, R12
584+ JMP callbackasm1(SB)
585+ MOVV $285, R12
586+ JMP callbackasm1(SB)
587+ MOVV $286, R12
588+ JMP callbackasm1(SB)
589+ MOVV $287, R12
590+ JMP callbackasm1(SB)
591+ MOVV $288, R12
592+ JMP callbackasm1(SB)
593+ MOVV $289, R12
594+ JMP callbackasm1(SB)
595+ MOVV $290, R12
596+ JMP callbackasm1(SB)
597+ MOVV $291, R12
598+ JMP callbackasm1(SB)
599+ MOVV $292, R12
600+ JMP callbackasm1(SB)
601+ MOVV $293, R12
602+ JMP callbackasm1(SB)
603+ MOVV $294, R12
604+ JMP callbackasm1(SB)
605+ MOVV $295, R12
606+ JMP callbackasm1(SB)
607+ MOVV $296, R12
608+ JMP callbackasm1(SB)
609+ MOVV $297, R12
610+ JMP callbackasm1(SB)
611+ MOVV $298, R12
612+ JMP callbackasm1(SB)
613+ MOVV $299, R12
614+ JMP callbackasm1(SB)
615+ MOVV $300, R12
616+ JMP callbackasm1(SB)
617+ MOVV $301, R12
618+ JMP callbackasm1(SB)
619+ MOVV $302, R12
620+ JMP callbackasm1(SB)
621+ MOVV $303, R12
622+ JMP callbackasm1(SB)
623+ MOVV $304, R12
624+ JMP callbackasm1(SB)
625+ MOVV $305, R12
626+ JMP callbackasm1(SB)
627+ MOVV $306, R12
628+ JMP callbackasm1(SB)
629+ MOVV $307, R12
630+ JMP callbackasm1(SB)
631+ MOVV $308, R12
632+ JMP callbackasm1(SB)
633+ MOVV $309, R12
634+ JMP callbackasm1(SB)
635+ MOVV $310, R12
636+ JMP callbackasm1(SB)
637+ MOVV $311, R12
638+ JMP callbackasm1(SB)
639+ MOVV $312, R12
640+ JMP callbackasm1(SB)
641+ MOVV $313, R12
642+ JMP callbackasm1(SB)
643+ MOVV $314, R12
644+ JMP callbackasm1(SB)
645+ MOVV $315, R12
646+ JMP callbackasm1(SB)
647+ MOVV $316, R12
648+ JMP callbackasm1(SB)
649+ MOVV $317, R12
650+ JMP callbackasm1(SB)
651+ MOVV $318, R12
652+ JMP callbackasm1(SB)
653+ MOVV $319, R12
654+ JMP callbackasm1(SB)
655+ MOVV $320, R12
656+ JMP callbackasm1(SB)
657+ MOVV $321, R12
658+ JMP callbackasm1(SB)
659+ MOVV $322, R12
660+ JMP callbackasm1(SB)
661+ MOVV $323, R12
662+ JMP callbackasm1(SB)
663+ MOVV $324, R12
664+ JMP callbackasm1(SB)
665+ MOVV $325, R12
666+ JMP callbackasm1(SB)
667+ MOVV $326, R12
668+ JMP callbackasm1(SB)
669+ MOVV $327, R12
670+ JMP callbackasm1(SB)
671+ MOVV $328, R12
672+ JMP callbackasm1(SB)
673+ MOVV $329, R12
674+ JMP callbackasm1(SB)
675+ MOVV $330, R12
676+ JMP callbackasm1(SB)
677+ MOVV $331, R12
678+ JMP callbackasm1(SB)
679+ MOVV $332, R12
680+ JMP callbackasm1(SB)
681+ MOVV $333, R12
682+ JMP callbackasm1(SB)
683+ MOVV $334, R12
684+ JMP callbackasm1(SB)
685+ MOVV $335, R12
686+ JMP callbackasm1(SB)
687+ MOVV $336, R12
688+ JMP callbackasm1(SB)
689+ MOVV $337, R12
690+ JMP callbackasm1(SB)
691+ MOVV $338, R12
692+ JMP callbackasm1(SB)
693+ MOVV $339, R12
694+ JMP callbackasm1(SB)
695+ MOVV $340, R12
696+ JMP callbackasm1(SB)
697+ MOVV $341, R12
698+ JMP callbackasm1(SB)
699+ MOVV $342, R12
700+ JMP callbackasm1(SB)
701+ MOVV $343, R12
702+ JMP callbackasm1(SB)
703+ MOVV $344, R12
704+ JMP callbackasm1(SB)
705+ MOVV $345, R12
706+ JMP callbackasm1(SB)
707+ MOVV $346, R12
708+ JMP callbackasm1(SB)
709+ MOVV $347, R12
710+ JMP callbackasm1(SB)
711+ MOVV $348, R12
712+ JMP callbackasm1(SB)
713+ MOVV $349, R12
714+ JMP callbackasm1(SB)
715+ MOVV $350, R12
716+ JMP callbackasm1(SB)
717+ MOVV $351, R12
718+ JMP callbackasm1(SB)
719+ MOVV $352, R12
720+ JMP callbackasm1(SB)
721+ MOVV $353, R12
722+ JMP callbackasm1(SB)
723+ MOVV $354, R12
724+ JMP callbackasm1(SB)
725+ MOVV $355, R12
726+ JMP callbackasm1(SB)
727+ MOVV $356, R12
728+ JMP callbackasm1(SB)
729+ MOVV $357, R12
730+ JMP callbackasm1(SB)
731+ MOVV $358, R12
732+ JMP callbackasm1(SB)
733+ MOVV $359, R12
734+ JMP callbackasm1(SB)
735+ MOVV $360, R12
736+ JMP callbackasm1(SB)
737+ MOVV $361, R12
738+ JMP callbackasm1(SB)
739+ MOVV $362, R12
740+ JMP callbackasm1(SB)
741+ MOVV $363, R12
742+ JMP callbackasm1(SB)
743+ MOVV $364, R12
744+ JMP callbackasm1(SB)
745+ MOVV $365, R12
746+ JMP callbackasm1(SB)
747+ MOVV $366, R12
748+ JMP callbackasm1(SB)
749+ MOVV $367, R12
750+ JMP callbackasm1(SB)
751+ MOVV $368, R12
752+ JMP callbackasm1(SB)
753+ MOVV $369, R12
754+ JMP callbackasm1(SB)
755+ MOVV $370, R12
756+ JMP callbackasm1(SB)
757+ MOVV $371, R12
758+ JMP callbackasm1(SB)
759+ MOVV $372, R12
760+ JMP callbackasm1(SB)
761+ MOVV $373, R12
762+ JMP callbackasm1(SB)
763+ MOVV $374, R12
764+ JMP callbackasm1(SB)
765+ MOVV $375, R12
766+ JMP callbackasm1(SB)
767+ MOVV $376, R12
768+ JMP callbackasm1(SB)
769+ MOVV $377, R12
770+ JMP callbackasm1(SB)
771+ MOVV $378, R12
772+ JMP callbackasm1(SB)
773+ MOVV $379, R12
774+ JMP callbackasm1(SB)
775+ MOVV $380, R12
776+ JMP callbackasm1(SB)
777+ MOVV $381, R12
778+ JMP callbackasm1(SB)
779+ MOVV $382, R12
780+ JMP callbackasm1(SB)
781+ MOVV $383, R12
782+ JMP callbackasm1(SB)
783+ MOVV $384, R12
784+ JMP callbackasm1(SB)
785+ MOVV $385, R12
786+ JMP callbackasm1(SB)
787+ MOVV $386, R12
788+ JMP callbackasm1(SB)
789+ MOVV $387, R12
790+ JMP callbackasm1(SB)
791+ MOVV $388, R12
792+ JMP callbackasm1(SB)
793+ MOVV $389, R12
794+ JMP callbackasm1(SB)
795+ MOVV $390, R12
796+ JMP callbackasm1(SB)
797+ MOVV $391, R12
798+ JMP callbackasm1(SB)
799+ MOVV $392, R12
800+ JMP callbackasm1(SB)
801+ MOVV $393, R12
802+ JMP callbackasm1(SB)
803+ MOVV $394, R12
804+ JMP callbackasm1(SB)
805+ MOVV $395, R12
806+ JMP callbackasm1(SB)
807+ MOVV $396, R12
808+ JMP callbackasm1(SB)
809+ MOVV $397, R12
810+ JMP callbackasm1(SB)
811+ MOVV $398, R12
812+ JMP callbackasm1(SB)
813+ MOVV $399, R12
814+ JMP callbackasm1(SB)
815+ MOVV $400, R12
816+ JMP callbackasm1(SB)
817+ MOVV $401, R12
818+ JMP callbackasm1(SB)
819+ MOVV $402, R12
820+ JMP callbackasm1(SB)
821+ MOVV $403, R12
822+ JMP callbackasm1(SB)
823+ MOVV $404, R12
824+ JMP callbackasm1(SB)
825+ MOVV $405, R12
826+ JMP callbackasm1(SB)
827+ MOVV $406, R12
828+ JMP callbackasm1(SB)
829+ MOVV $407, R12
830+ JMP callbackasm1(SB)
831+ MOVV $408, R12
832+ JMP callbackasm1(SB)
833+ MOVV $409, R12
834+ JMP callbackasm1(SB)
835+ MOVV $410, R12
836+ JMP callbackasm1(SB)
837+ MOVV $411, R12
838+ JMP callbackasm1(SB)
839+ MOVV $412, R12
840+ JMP callbackasm1(SB)
841+ MOVV $413, R12
842+ JMP callbackasm1(SB)
843+ MOVV $414, R12
844+ JMP callbackasm1(SB)
845+ MOVV $415, R12
846+ JMP callbackasm1(SB)
847+ MOVV $416, R12
848+ JMP callbackasm1(SB)
849+ MOVV $417, R12
850+ JMP callbackasm1(SB)
851+ MOVV $418, R12
852+ JMP callbackasm1(SB)
853+ MOVV $419, R12
854+ JMP callbackasm1(SB)
855+ MOVV $420, R12
856+ JMP callbackasm1(SB)
857+ MOVV $421, R12
858+ JMP callbackasm1(SB)
859+ MOVV $422, R12
860+ JMP callbackasm1(SB)
861+ MOVV $423, R12
862+ JMP callbackasm1(SB)
863+ MOVV $424, R12
864+ JMP callbackasm1(SB)
865+ MOVV $425, R12
866+ JMP callbackasm1(SB)
867+ MOVV $426, R12
868+ JMP callbackasm1(SB)
869+ MOVV $427, R12
870+ JMP callbackasm1(SB)
871+ MOVV $428, R12
872+ JMP callbackasm1(SB)
873+ MOVV $429, R12
874+ JMP callbackasm1(SB)
875+ MOVV $430, R12
876+ JMP callbackasm1(SB)
877+ MOVV $431, R12
878+ JMP callbackasm1(SB)
879+ MOVV $432, R12
880+ JMP callbackasm1(SB)
881+ MOVV $433, R12
882+ JMP callbackasm1(SB)
883+ MOVV $434, R12
884+ JMP callbackasm1(SB)
885+ MOVV $435, R12
886+ JMP callbackasm1(SB)
887+ MOVV $436, R12
888+ JMP callbackasm1(SB)
889+ MOVV $437, R12
890+ JMP callbackasm1(SB)
891+ MOVV $438, R12
892+ JMP callbackasm1(SB)
893+ MOVV $439, R12
894+ JMP callbackasm1(SB)
895+ MOVV $440, R12
896+ JMP callbackasm1(SB)
897+ MOVV $441, R12
898+ JMP callbackasm1(SB)
899+ MOVV $442, R12
900+ JMP callbackasm1(SB)
901+ MOVV $443, R12
902+ JMP callbackasm1(SB)
903+ MOVV $444, R12
904+ JMP callbackasm1(SB)
905+ MOVV $445, R12
906+ JMP callbackasm1(SB)
907+ MOVV $446, R12
908+ JMP callbackasm1(SB)
909+ MOVV $447, R12
910+ JMP callbackasm1(SB)
911+ MOVV $448, R12
912+ JMP callbackasm1(SB)
913+ MOVV $449, R12
914+ JMP callbackasm1(SB)
915+ MOVV $450, R12
916+ JMP callbackasm1(SB)
917+ MOVV $451, R12
918+ JMP callbackasm1(SB)
919+ MOVV $452, R12
920+ JMP callbackasm1(SB)
921+ MOVV $453, R12
922+ JMP callbackasm1(SB)
923+ MOVV $454, R12
924+ JMP callbackasm1(SB)
925+ MOVV $455, R12
926+ JMP callbackasm1(SB)
927+ MOVV $456, R12
928+ JMP callbackasm1(SB)
929+ MOVV $457, R12
930+ JMP callbackasm1(SB)
931+ MOVV $458, R12
932+ JMP callbackasm1(SB)
933+ MOVV $459, R12
934+ JMP callbackasm1(SB)
935+ MOVV $460, R12
936+ JMP callbackasm1(SB)
937+ MOVV $461, R12
938+ JMP callbackasm1(SB)
939+ MOVV $462, R12
940+ JMP callbackasm1(SB)
941+ MOVV $463, R12
942+ JMP callbackasm1(SB)
943+ MOVV $464, R12
944+ JMP callbackasm1(SB)
945+ MOVV $465, R12
946+ JMP callbackasm1(SB)
947+ MOVV $466, R12
948+ JMP callbackasm1(SB)
949+ MOVV $467, R12
950+ JMP callbackasm1(SB)
951+ MOVV $468, R12
952+ JMP callbackasm1(SB)
953+ MOVV $469, R12
954+ JMP callbackasm1(SB)
955+ MOVV $470, R12
956+ JMP callbackasm1(SB)
957+ MOVV $471, R12
958+ JMP callbackasm1(SB)
959+ MOVV $472, R12
960+ JMP callbackasm1(SB)
961+ MOVV $473, R12
962+ JMP callbackasm1(SB)
963+ MOVV $474, R12
964+ JMP callbackasm1(SB)
965+ MOVV $475, R12
966+ JMP callbackasm1(SB)
967+ MOVV $476, R12
968+ JMP callbackasm1(SB)
969+ MOVV $477, R12
970+ JMP callbackasm1(SB)
971+ MOVV $478, R12
972+ JMP callbackasm1(SB)
973+ MOVV $479, R12
974+ JMP callbackasm1(SB)
975+ MOVV $480, R12
976+ JMP callbackasm1(SB)
977+ MOVV $481, R12
978+ JMP callbackasm1(SB)
979+ MOVV $482, R12
980+ JMP callbackasm1(SB)
981+ MOVV $483, R12
982+ JMP callbackasm1(SB)
983+ MOVV $484, R12
984+ JMP callbackasm1(SB)
985+ MOVV $485, R12
986+ JMP callbackasm1(SB)
987+ MOVV $486, R12
988+ JMP callbackasm1(SB)
989+ MOVV $487, R12
990+ JMP callbackasm1(SB)
991+ MOVV $488, R12
992+ JMP callbackasm1(SB)
993+ MOVV $489, R12
994+ JMP callbackasm1(SB)
995+ MOVV $490, R12
996+ JMP callbackasm1(SB)
997+ MOVV $491, R12
998+ JMP callbackasm1(SB)
999+ MOVV $492, R12
1000+ JMP callbackasm1(SB)
1001+ MOVV $493, R12
1002+ JMP callbackasm1(SB)
1003+ MOVV $494, R12
1004+ JMP callbackasm1(SB)
1005+ MOVV $495, R12
1006+ JMP callbackasm1(SB)
1007+ MOVV $496, R12
1008+ JMP callbackasm1(SB)
1009+ MOVV $497, R12
1010+ JMP callbackasm1(SB)
1011+ MOVV $498, R12
1012+ JMP callbackasm1(SB)
1013+ MOVV $499, R12
1014+ JMP callbackasm1(SB)
1015+ MOVV $500, R12
1016+ JMP callbackasm1(SB)
1017+ MOVV $501, R12
1018+ JMP callbackasm1(SB)
1019+ MOVV $502, R12
1020+ JMP callbackasm1(SB)
1021+ MOVV $503, R12
1022+ JMP callbackasm1(SB)
1023+ MOVV $504, R12
1024+ JMP callbackasm1(SB)
1025+ MOVV $505, R12
1026+ JMP callbackasm1(SB)
1027+ MOVV $506, R12
1028+ JMP callbackasm1(SB)
1029+ MOVV $507, R12
1030+ JMP callbackasm1(SB)
1031+ MOVV $508, R12
1032+ JMP callbackasm1(SB)
1033+ MOVV $509, R12
1034+ JMP callbackasm1(SB)
1035+ MOVV $510, R12
1036+ JMP callbackasm1(SB)
1037+ MOVV $511, R12
1038+ JMP callbackasm1(SB)
1039+ MOVV $512, R12
1040+ JMP callbackasm1(SB)
1041+ MOVV $513, R12
1042+ JMP callbackasm1(SB)
1043+ MOVV $514, R12
1044+ JMP callbackasm1(SB)
1045+ MOVV $515, R12
1046+ JMP callbackasm1(SB)
1047+ MOVV $516, R12
1048+ JMP callbackasm1(SB)
1049+ MOVV $517, R12
1050+ JMP callbackasm1(SB)
1051+ MOVV $518, R12
1052+ JMP callbackasm1(SB)
1053+ MOVV $519, R12
1054+ JMP callbackasm1(SB)
1055+ MOVV $520, R12
1056+ JMP callbackasm1(SB)
1057+ MOVV $521, R12
1058+ JMP callbackasm1(SB)
1059+ MOVV $522, R12
1060+ JMP callbackasm1(SB)
1061+ MOVV $523, R12
1062+ JMP callbackasm1(SB)
1063+ MOVV $524, R12
1064+ JMP callbackasm1(SB)
1065+ MOVV $525, R12
1066+ JMP callbackasm1(SB)
1067+ MOVV $526, R12
1068+ JMP callbackasm1(SB)
1069+ MOVV $527, R12
1070+ JMP callbackasm1(SB)
1071+ MOVV $528, R12
1072+ JMP callbackasm1(SB)
1073+ MOVV $529, R12
1074+ JMP callbackasm1(SB)
1075+ MOVV $530, R12
1076+ JMP callbackasm1(SB)
1077+ MOVV $531, R12
1078+ JMP callbackasm1(SB)
1079+ MOVV $532, R12
1080+ JMP callbackasm1(SB)
1081+ MOVV $533, R12
1082+ JMP callbackasm1(SB)
1083+ MOVV $534, R12
1084+ JMP callbackasm1(SB)
1085+ MOVV $535, R12
1086+ JMP callbackasm1(SB)
1087+ MOVV $536, R12
1088+ JMP callbackasm1(SB)
1089+ MOVV $537, R12
1090+ JMP callbackasm1(SB)
1091+ MOVV $538, R12
1092+ JMP callbackasm1(SB)
1093+ MOVV $539, R12
1094+ JMP callbackasm1(SB)
1095+ MOVV $540, R12
1096+ JMP callbackasm1(SB)
1097+ MOVV $541, R12
1098+ JMP callbackasm1(SB)
1099+ MOVV $542, R12
1100+ JMP callbackasm1(SB)
1101+ MOVV $543, R12
1102+ JMP callbackasm1(SB)
1103+ MOVV $544, R12
1104+ JMP callbackasm1(SB)
1105+ MOVV $545, R12
1106+ JMP callbackasm1(SB)
1107+ MOVV $546, R12
1108+ JMP callbackasm1(SB)
1109+ MOVV $547, R12
1110+ JMP callbackasm1(SB)
1111+ MOVV $548, R12
1112+ JMP callbackasm1(SB)
1113+ MOVV $549, R12
1114+ JMP callbackasm1(SB)
1115+ MOVV $550, R12
1116+ JMP callbackasm1(SB)
1117+ MOVV $551, R12
1118+ JMP callbackasm1(SB)
1119+ MOVV $552, R12
1120+ JMP callbackasm1(SB)
1121+ MOVV $553, R12
1122+ JMP callbackasm1(SB)
1123+ MOVV $554, R12
1124+ JMP callbackasm1(SB)
1125+ MOVV $555, R12
1126+ JMP callbackasm1(SB)
1127+ MOVV $556, R12
1128+ JMP callbackasm1(SB)
1129+ MOVV $557, R12
1130+ JMP callbackasm1(SB)
1131+ MOVV $558, R12
1132+ JMP callbackasm1(SB)
1133+ MOVV $559, R12
1134+ JMP callbackasm1(SB)
1135+ MOVV $560, R12
1136+ JMP callbackasm1(SB)
1137+ MOVV $561, R12
1138+ JMP callbackasm1(SB)
1139+ MOVV $562, R12
1140+ JMP callbackasm1(SB)
1141+ MOVV $563, R12
1142+ JMP callbackasm1(SB)
1143+ MOVV $564, R12
1144+ JMP callbackasm1(SB)
1145+ MOVV $565, R12
1146+ JMP callbackasm1(SB)
1147+ MOVV $566, R12
1148+ JMP callbackasm1(SB)
1149+ MOVV $567, R12
1150+ JMP callbackasm1(SB)
1151+ MOVV $568, R12
1152+ JMP callbackasm1(SB)
1153+ MOVV $569, R12
1154+ JMP callbackasm1(SB)
1155+ MOVV $570, R12
1156+ JMP callbackasm1(SB)
1157+ MOVV $571, R12
1158+ JMP callbackasm1(SB)
1159+ MOVV $572, R12
1160+ JMP callbackasm1(SB)
1161+ MOVV $573, R12
1162+ JMP callbackasm1(SB)
1163+ MOVV $574, R12
1164+ JMP callbackasm1(SB)
1165+ MOVV $575, R12
1166+ JMP callbackasm1(SB)
1167+ MOVV $576, R12
1168+ JMP callbackasm1(SB)
1169+ MOVV $577, R12
1170+ JMP callbackasm1(SB)
1171+ MOVV $578, R12
1172+ JMP callbackasm1(SB)
1173+ MOVV $579, R12
1174+ JMP callbackasm1(SB)
1175+ MOVV $580, R12
1176+ JMP callbackasm1(SB)
1177+ MOVV $581, R12
1178+ JMP callbackasm1(SB)
1179+ MOVV $582, R12
1180+ JMP callbackasm1(SB)
1181+ MOVV $583, R12
1182+ JMP callbackasm1(SB)
1183+ MOVV $584, R12
1184+ JMP callbackasm1(SB)
1185+ MOVV $585, R12
1186+ JMP callbackasm1(SB)
1187+ MOVV $586, R12
1188+ JMP callbackasm1(SB)
1189+ MOVV $587, R12
1190+ JMP callbackasm1(SB)
1191+ MOVV $588, R12
1192+ JMP callbackasm1(SB)
1193+ MOVV $589, R12
1194+ JMP callbackasm1(SB)
1195+ MOVV $590, R12
1196+ JMP callbackasm1(SB)
1197+ MOVV $591, R12
1198+ JMP callbackasm1(SB)
1199+ MOVV $592, R12
1200+ JMP callbackasm1(SB)
1201+ MOVV $593, R12
1202+ JMP callbackasm1(SB)
1203+ MOVV $594, R12
1204+ JMP callbackasm1(SB)
1205+ MOVV $595, R12
1206+ JMP callbackasm1(SB)
1207+ MOVV $596, R12
1208+ JMP callbackasm1(SB)
1209+ MOVV $597, R12
1210+ JMP callbackasm1(SB)
1211+ MOVV $598, R12
1212+ JMP callbackasm1(SB)
1213+ MOVV $599, R12
1214+ JMP callbackasm1(SB)
1215+ MOVV $600, R12
1216+ JMP callbackasm1(SB)
1217+ MOVV $601, R12
1218+ JMP callbackasm1(SB)
1219+ MOVV $602, R12
1220+ JMP callbackasm1(SB)
1221+ MOVV $603, R12
1222+ JMP callbackasm1(SB)
1223+ MOVV $604, R12
1224+ JMP callbackasm1(SB)
1225+ MOVV $605, R12
1226+ JMP callbackasm1(SB)
1227+ MOVV $606, R12
1228+ JMP callbackasm1(SB)
1229+ MOVV $607, R12
1230+ JMP callbackasm1(SB)
1231+ MOVV $608, R12
1232+ JMP callbackasm1(SB)
1233+ MOVV $609, R12
1234+ JMP callbackasm1(SB)
1235+ MOVV $610, R12
1236+ JMP callbackasm1(SB)
1237+ MOVV $611, R12
1238+ JMP callbackasm1(SB)
1239+ MOVV $612, R12
1240+ JMP callbackasm1(SB)
1241+ MOVV $613, R12
1242+ JMP callbackasm1(SB)
1243+ MOVV $614, R12
1244+ JMP callbackasm1(SB)
1245+ MOVV $615, R12
1246+ JMP callbackasm1(SB)
1247+ MOVV $616, R12
1248+ JMP callbackasm1(SB)
1249+ MOVV $617, R12
1250+ JMP callbackasm1(SB)
1251+ MOVV $618, R12
1252+ JMP callbackasm1(SB)
1253+ MOVV $619, R12
1254+ JMP callbackasm1(SB)
1255+ MOVV $620, R12
1256+ JMP callbackasm1(SB)
1257+ MOVV $621, R12
1258+ JMP callbackasm1(SB)
1259+ MOVV $622, R12
1260+ JMP callbackasm1(SB)
1261+ MOVV $623, R12
1262+ JMP callbackasm1(SB)
1263+ MOVV $624, R12
1264+ JMP callbackasm1(SB)
1265+ MOVV $625, R12
1266+ JMP callbackasm1(SB)
1267+ MOVV $626, R12
1268+ JMP callbackasm1(SB)
1269+ MOVV $627, R12
1270+ JMP callbackasm1(SB)
1271+ MOVV $628, R12
1272+ JMP callbackasm1(SB)
1273+ MOVV $629, R12
1274+ JMP callbackasm1(SB)
1275+ MOVV $630, R12
1276+ JMP callbackasm1(SB)
1277+ MOVV $631, R12
1278+ JMP callbackasm1(SB)
1279+ MOVV $632, R12
1280+ JMP callbackasm1(SB)
1281+ MOVV $633, R12
1282+ JMP callbackasm1(SB)
1283+ MOVV $634, R12
1284+ JMP callbackasm1(SB)
1285+ MOVV $635, R12
1286+ JMP callbackasm1(SB)
1287+ MOVV $636, R12
1288+ JMP callbackasm1(SB)
1289+ MOVV $637, R12
1290+ JMP callbackasm1(SB)
1291+ MOVV $638, R12
1292+ JMP callbackasm1(SB)
1293+ MOVV $639, R12
1294+ JMP callbackasm1(SB)
1295+ MOVV $640, R12
1296+ JMP callbackasm1(SB)
1297+ MOVV $641, R12
1298+ JMP callbackasm1(SB)
1299+ MOVV $642, R12
1300+ JMP callbackasm1(SB)
1301+ MOVV $643, R12
1302+ JMP callbackasm1(SB)
1303+ MOVV $644, R12
1304+ JMP callbackasm1(SB)
1305+ MOVV $645, R12
1306+ JMP callbackasm1(SB)
1307+ MOVV $646, R12
1308+ JMP callbackasm1(SB)
1309+ MOVV $647, R12
1310+ JMP callbackasm1(SB)
1311+ MOVV $648, R12
1312+ JMP callbackasm1(SB)
1313+ MOVV $649, R12
1314+ JMP callbackasm1(SB)
1315+ MOVV $650, R12
1316+ JMP callbackasm1(SB)
1317+ MOVV $651, R12
1318+ JMP callbackasm1(SB)
1319+ MOVV $652, R12
1320+ JMP callbackasm1(SB)
1321+ MOVV $653, R12
1322+ JMP callbackasm1(SB)
1323+ MOVV $654, R12
1324+ JMP callbackasm1(SB)
1325+ MOVV $655, R12
1326+ JMP callbackasm1(SB)
1327+ MOVV $656, R12
1328+ JMP callbackasm1(SB)
1329+ MOVV $657, R12
1330+ JMP callbackasm1(SB)
1331+ MOVV $658, R12
1332+ JMP callbackasm1(SB)
1333+ MOVV $659, R12
1334+ JMP callbackasm1(SB)
1335+ MOVV $660, R12
1336+ JMP callbackasm1(SB)
1337+ MOVV $661, R12
1338+ JMP callbackasm1(SB)
1339+ MOVV $662, R12
1340+ JMP callbackasm1(SB)
1341+ MOVV $663, R12
1342+ JMP callbackasm1(SB)
1343+ MOVV $664, R12
1344+ JMP callbackasm1(SB)
1345+ MOVV $665, R12
1346+ JMP callbackasm1(SB)
1347+ MOVV $666, R12
1348+ JMP callbackasm1(SB)
1349+ MOVV $667, R12
1350+ JMP callbackasm1(SB)
1351+ MOVV $668, R12
1352+ JMP callbackasm1(SB)
1353+ MOVV $669, R12
1354+ JMP callbackasm1(SB)
1355+ MOVV $670, R12
1356+ JMP callbackasm1(SB)
1357+ MOVV $671, R12
1358+ JMP callbackasm1(SB)
1359+ MOVV $672, R12
1360+ JMP callbackasm1(SB)
1361+ MOVV $673, R12
1362+ JMP callbackasm1(SB)
1363+ MOVV $674, R12
1364+ JMP callbackasm1(SB)
1365+ MOVV $675, R12
1366+ JMP callbackasm1(SB)
1367+ MOVV $676, R12
1368+ JMP callbackasm1(SB)
1369+ MOVV $677, R12
1370+ JMP callbackasm1(SB)
1371+ MOVV $678, R12
1372+ JMP callbackasm1(SB)
1373+ MOVV $679, R12
1374+ JMP callbackasm1(SB)
1375+ MOVV $680, R12
1376+ JMP callbackasm1(SB)
1377+ MOVV $681, R12
1378+ JMP callbackasm1(SB)
1379+ MOVV $682, R12
1380+ JMP callbackasm1(SB)
1381+ MOVV $683, R12
1382+ JMP callbackasm1(SB)
1383+ MOVV $684, R12
1384+ JMP callbackasm1(SB)
1385+ MOVV $685, R12
1386+ JMP callbackasm1(SB)
1387+ MOVV $686, R12
1388+ JMP callbackasm1(SB)
1389+ MOVV $687, R12
1390+ JMP callbackasm1(SB)
1391+ MOVV $688, R12
1392+ JMP callbackasm1(SB)
1393+ MOVV $689, R12
1394+ JMP callbackasm1(SB)
1395+ MOVV $690, R12
1396+ JMP callbackasm1(SB)
1397+ MOVV $691, R12
1398+ JMP callbackasm1(SB)
1399+ MOVV $692, R12
1400+ JMP callbackasm1(SB)
1401+ MOVV $693, R12
1402+ JMP callbackasm1(SB)
1403+ MOVV $694, R12
1404+ JMP callbackasm1(SB)
1405+ MOVV $695, R12
1406+ JMP callbackasm1(SB)
1407+ MOVV $696, R12
1408+ JMP callbackasm1(SB)
1409+ MOVV $697, R12
1410+ JMP callbackasm1(SB)
1411+ MOVV $698, R12
1412+ JMP callbackasm1(SB)
1413+ MOVV $699, R12
1414+ JMP callbackasm1(SB)
1415+ MOVV $700, R12
1416+ JMP callbackasm1(SB)
1417+ MOVV $701, R12
1418+ JMP callbackasm1(SB)
1419+ MOVV $702, R12
1420+ JMP callbackasm1(SB)
1421+ MOVV $703, R12
1422+ JMP callbackasm1(SB)
1423+ MOVV $704, R12
1424+ JMP callbackasm1(SB)
1425+ MOVV $705, R12
1426+ JMP callbackasm1(SB)
1427+ MOVV $706, R12
1428+ JMP callbackasm1(SB)
1429+ MOVV $707, R12
1430+ JMP callbackasm1(SB)
1431+ MOVV $708, R12
1432+ JMP callbackasm1(SB)
1433+ MOVV $709, R12
1434+ JMP callbackasm1(SB)
1435+ MOVV $710, R12
1436+ JMP callbackasm1(SB)
1437+ MOVV $711, R12
1438+ JMP callbackasm1(SB)
1439+ MOVV $712, R12
1440+ JMP callbackasm1(SB)
1441+ MOVV $713, R12
1442+ JMP callbackasm1(SB)
1443+ MOVV $714, R12
1444+ JMP callbackasm1(SB)
1445+ MOVV $715, R12
1446+ JMP callbackasm1(SB)
1447+ MOVV $716, R12
1448+ JMP callbackasm1(SB)
1449+ MOVV $717, R12
1450+ JMP callbackasm1(SB)
1451+ MOVV $718, R12
1452+ JMP callbackasm1(SB)
1453+ MOVV $719, R12
1454+ JMP callbackasm1(SB)
1455+ MOVV $720, R12
1456+ JMP callbackasm1(SB)
1457+ MOVV $721, R12
1458+ JMP callbackasm1(SB)
1459+ MOVV $722, R12
1460+ JMP callbackasm1(SB)
1461+ MOVV $723, R12
1462+ JMP callbackasm1(SB)
1463+ MOVV $724, R12
1464+ JMP callbackasm1(SB)
1465+ MOVV $725, R12
1466+ JMP callbackasm1(SB)
1467+ MOVV $726, R12
1468+ JMP callbackasm1(SB)
1469+ MOVV $727, R12
1470+ JMP callbackasm1(SB)
1471+ MOVV $728, R12
1472+ JMP callbackasm1(SB)
1473+ MOVV $729, R12
1474+ JMP callbackasm1(SB)
1475+ MOVV $730, R12
1476+ JMP callbackasm1(SB)
1477+ MOVV $731, R12
1478+ JMP callbackasm1(SB)
1479+ MOVV $732, R12
1480+ JMP callbackasm1(SB)
1481+ MOVV $733, R12
1482+ JMP callbackasm1(SB)
1483+ MOVV $734, R12
1484+ JMP callbackasm1(SB)
1485+ MOVV $735, R12
1486+ JMP callbackasm1(SB)
1487+ MOVV $736, R12
1488+ JMP callbackasm1(SB)
1489+ MOVV $737, R12
1490+ JMP callbackasm1(SB)
1491+ MOVV $738, R12
1492+ JMP callbackasm1(SB)
1493+ MOVV $739, R12
1494+ JMP callbackasm1(SB)
1495+ MOVV $740, R12
1496+ JMP callbackasm1(SB)
1497+ MOVV $741, R12
1498+ JMP callbackasm1(SB)
1499+ MOVV $742, R12
1500+ JMP callbackasm1(SB)
1501+ MOVV $743, R12
1502+ JMP callbackasm1(SB)
1503+ MOVV $744, R12
1504+ JMP callbackasm1(SB)
1505+ MOVV $745, R12
1506+ JMP callbackasm1(SB)
1507+ MOVV $746, R12
1508+ JMP callbackasm1(SB)
1509+ MOVV $747, R12
1510+ JMP callbackasm1(SB)
1511+ MOVV $748, R12
1512+ JMP callbackasm1(SB)
1513+ MOVV $749, R12
1514+ JMP callbackasm1(SB)
1515+ MOVV $750, R12
1516+ JMP callbackasm1(SB)
1517+ MOVV $751, R12
1518+ JMP callbackasm1(SB)
1519+ MOVV $752, R12
1520+ JMP callbackasm1(SB)
1521+ MOVV $753, R12
1522+ JMP callbackasm1(SB)
1523+ MOVV $754, R12
1524+ JMP callbackasm1(SB)
1525+ MOVV $755, R12
1526+ JMP callbackasm1(SB)
1527+ MOVV $756, R12
1528+ JMP callbackasm1(SB)
1529+ MOVV $757, R12
1530+ JMP callbackasm1(SB)
1531+ MOVV $758, R12
1532+ JMP callbackasm1(SB)
1533+ MOVV $759, R12
1534+ JMP callbackasm1(SB)
1535+ MOVV $760, R12
1536+ JMP callbackasm1(SB)
1537+ MOVV $761, R12
1538+ JMP callbackasm1(SB)
1539+ MOVV $762, R12
1540+ JMP callbackasm1(SB)
1541+ MOVV $763, R12
1542+ JMP callbackasm1(SB)
1543+ MOVV $764, R12
1544+ JMP callbackasm1(SB)
1545+ MOVV $765, R12
1546+ JMP callbackasm1(SB)
1547+ MOVV $766, R12
1548+ JMP callbackasm1(SB)
1549+ MOVV $767, R12
1550+ JMP callbackasm1(SB)
1551+ MOVV $768, R12
1552+ JMP callbackasm1(SB)
1553+ MOVV $769, R12
1554+ JMP callbackasm1(SB)
1555+ MOVV $770, R12
1556+ JMP callbackasm1(SB)
1557+ MOVV $771, R12
1558+ JMP callbackasm1(SB)
1559+ MOVV $772, R12
1560+ JMP callbackasm1(SB)
1561+ MOVV $773, R12
1562+ JMP callbackasm1(SB)
1563+ MOVV $774, R12
1564+ JMP callbackasm1(SB)
1565+ MOVV $775, R12
1566+ JMP callbackasm1(SB)
1567+ MOVV $776, R12
1568+ JMP callbackasm1(SB)
1569+ MOVV $777, R12
1570+ JMP callbackasm1(SB)
1571+ MOVV $778, R12
1572+ JMP callbackasm1(SB)
1573+ MOVV $779, R12
1574+ JMP callbackasm1(SB)
1575+ MOVV $780, R12
1576+ JMP callbackasm1(SB)
1577+ MOVV $781, R12
1578+ JMP callbackasm1(SB)
1579+ MOVV $782, R12
1580+ JMP callbackasm1(SB)
1581+ MOVV $783, R12
1582+ JMP callbackasm1(SB)
1583+ MOVV $784, R12
1584+ JMP callbackasm1(SB)
1585+ MOVV $785, R12
1586+ JMP callbackasm1(SB)
1587+ MOVV $786, R12
1588+ JMP callbackasm1(SB)
1589+ MOVV $787, R12
1590+ JMP callbackasm1(SB)
1591+ MOVV $788, R12
1592+ JMP callbackasm1(SB)
1593+ MOVV $789, R12
1594+ JMP callbackasm1(SB)
1595+ MOVV $790, R12
1596+ JMP callbackasm1(SB)
1597+ MOVV $791, R12
1598+ JMP callbackasm1(SB)
1599+ MOVV $792, R12
1600+ JMP callbackasm1(SB)
1601+ MOVV $793, R12
1602+ JMP callbackasm1(SB)
1603+ MOVV $794, R12
1604+ JMP callbackasm1(SB)
1605+ MOVV $795, R12
1606+ JMP callbackasm1(SB)
1607+ MOVV $796, R12
1608+ JMP callbackasm1(SB)
1609+ MOVV $797, R12
1610+ JMP callbackasm1(SB)
1611+ MOVV $798, R12
1612+ JMP callbackasm1(SB)
1613+ MOVV $799, R12
1614+ JMP callbackasm1(SB)
1615+ MOVV $800, R12
1616+ JMP callbackasm1(SB)
1617+ MOVV $801, R12
1618+ JMP callbackasm1(SB)
1619+ MOVV $802, R12
1620+ JMP callbackasm1(SB)
1621+ MOVV $803, R12
1622+ JMP callbackasm1(SB)
1623+ MOVV $804, R12
1624+ JMP callbackasm1(SB)
1625+ MOVV $805, R12
1626+ JMP callbackasm1(SB)
1627+ MOVV $806, R12
1628+ JMP callbackasm1(SB)
1629+ MOVV $807, R12
1630+ JMP callbackasm1(SB)
1631+ MOVV $808, R12
1632+ JMP callbackasm1(SB)
1633+ MOVV $809, R12
1634+ JMP callbackasm1(SB)
1635+ MOVV $810, R12
1636+ JMP callbackasm1(SB)
1637+ MOVV $811, R12
1638+ JMP callbackasm1(SB)
1639+ MOVV $812, R12
1640+ JMP callbackasm1(SB)
1641+ MOVV $813, R12
1642+ JMP callbackasm1(SB)
1643+ MOVV $814, R12
1644+ JMP callbackasm1(SB)
1645+ MOVV $815, R12
1646+ JMP callbackasm1(SB)
1647+ MOVV $816, R12
1648+ JMP callbackasm1(SB)
1649+ MOVV $817, R12
1650+ JMP callbackasm1(SB)
1651+ MOVV $818, R12
1652+ JMP callbackasm1(SB)
1653+ MOVV $819, R12
1654+ JMP callbackasm1(SB)
1655+ MOVV $820, R12
1656+ JMP callbackasm1(SB)
1657+ MOVV $821, R12
1658+ JMP callbackasm1(SB)
1659+ MOVV $822, R12
1660+ JMP callbackasm1(SB)
1661+ MOVV $823, R12
1662+ JMP callbackasm1(SB)
1663+ MOVV $824, R12
1664+ JMP callbackasm1(SB)
1665+ MOVV $825, R12
1666+ JMP callbackasm1(SB)
1667+ MOVV $826, R12
1668+ JMP callbackasm1(SB)
1669+ MOVV $827, R12
1670+ JMP callbackasm1(SB)
1671+ MOVV $828, R12
1672+ JMP callbackasm1(SB)
1673+ MOVV $829, R12
1674+ JMP callbackasm1(SB)
1675+ MOVV $830, R12
1676+ JMP callbackasm1(SB)
1677+ MOVV $831, R12
1678+ JMP callbackasm1(SB)
1679+ MOVV $832, R12
1680+ JMP callbackasm1(SB)
1681+ MOVV $833, R12
1682+ JMP callbackasm1(SB)
1683+ MOVV $834, R12
1684+ JMP callbackasm1(SB)
1685+ MOVV $835, R12
1686+ JMP callbackasm1(SB)
1687+ MOVV $836, R12
1688+ JMP callbackasm1(SB)
1689+ MOVV $837, R12
1690+ JMP callbackasm1(SB)
1691+ MOVV $838, R12
1692+ JMP callbackasm1(SB)
1693+ MOVV $839, R12
1694+ JMP callbackasm1(SB)
1695+ MOVV $840, R12
1696+ JMP callbackasm1(SB)
1697+ MOVV $841, R12
1698+ JMP callbackasm1(SB)
1699+ MOVV $842, R12
1700+ JMP callbackasm1(SB)
1701+ MOVV $843, R12
1702+ JMP callbackasm1(SB)
1703+ MOVV $844, R12
1704+ JMP callbackasm1(SB)
1705+ MOVV $845, R12
1706+ JMP callbackasm1(SB)
1707+ MOVV $846, R12
1708+ JMP callbackasm1(SB)
1709+ MOVV $847, R12
1710+ JMP callbackasm1(SB)
1711+ MOVV $848, R12
1712+ JMP callbackasm1(SB)
1713+ MOVV $849, R12
1714+ JMP callbackasm1(SB)
1715+ MOVV $850, R12
1716+ JMP callbackasm1(SB)
1717+ MOVV $851, R12
1718+ JMP callbackasm1(SB)
1719+ MOVV $852, R12
1720+ JMP callbackasm1(SB)
1721+ MOVV $853, R12
1722+ JMP callbackasm1(SB)
1723+ MOVV $854, R12
1724+ JMP callbackasm1(SB)
1725+ MOVV $855, R12
1726+ JMP callbackasm1(SB)
1727+ MOVV $856, R12
1728+ JMP callbackasm1(SB)
1729+ MOVV $857, R12
1730+ JMP callbackasm1(SB)
1731+ MOVV $858, R12
1732+ JMP callbackasm1(SB)
1733+ MOVV $859, R12
1734+ JMP callbackasm1(SB)
1735+ MOVV $860, R12
1736+ JMP callbackasm1(SB)
1737+ MOVV $861, R12
1738+ JMP callbackasm1(SB)
1739+ MOVV $862, R12
1740+ JMP callbackasm1(SB)
1741+ MOVV $863, R12
1742+ JMP callbackasm1(SB)
1743+ MOVV $864, R12
1744+ JMP callbackasm1(SB)
1745+ MOVV $865, R12
1746+ JMP callbackasm1(SB)
1747+ MOVV $866, R12
1748+ JMP callbackasm1(SB)
1749+ MOVV $867, R12
1750+ JMP callbackasm1(SB)
1751+ MOVV $868, R12
1752+ JMP callbackasm1(SB)
1753+ MOVV $869, R12
1754+ JMP callbackasm1(SB)
1755+ MOVV $870, R12
1756+ JMP callbackasm1(SB)
1757+ MOVV $871, R12
1758+ JMP callbackasm1(SB)
1759+ MOVV $872, R12
1760+ JMP callbackasm1(SB)
1761+ MOVV $873, R12
1762+ JMP callbackasm1(SB)
1763+ MOVV $874, R12
1764+ JMP callbackasm1(SB)
1765+ MOVV $875, R12
1766+ JMP callbackasm1(SB)
1767+ MOVV $876, R12
1768+ JMP callbackasm1(SB)
1769+ MOVV $877, R12
1770+ JMP callbackasm1(SB)
1771+ MOVV $878, R12
1772+ JMP callbackasm1(SB)
1773+ MOVV $879, R12
1774+ JMP callbackasm1(SB)
1775+ MOVV $880, R12
1776+ JMP callbackasm1(SB)
1777+ MOVV $881, R12
1778+ JMP callbackasm1(SB)
1779+ MOVV $882, R12
1780+ JMP callbackasm1(SB)
1781+ MOVV $883, R12
1782+ JMP callbackasm1(SB)
1783+ MOVV $884, R12
1784+ JMP callbackasm1(SB)
1785+ MOVV $885, R12
1786+ JMP callbackasm1(SB)
1787+ MOVV $886, R12
1788+ JMP callbackasm1(SB)
1789+ MOVV $887, R12
1790+ JMP callbackasm1(SB)
1791+ MOVV $888, R12
1792+ JMP callbackasm1(SB)
1793+ MOVV $889, R12
1794+ JMP callbackasm1(SB)
1795+ MOVV $890, R12
1796+ JMP callbackasm1(SB)
1797+ MOVV $891, R12
1798+ JMP callbackasm1(SB)
1799+ MOVV $892, R12
1800+ JMP callbackasm1(SB)
1801+ MOVV $893, R12
1802+ JMP callbackasm1(SB)
1803+ MOVV $894, R12
1804+ JMP callbackasm1(SB)
1805+ MOVV $895, R12
1806+ JMP callbackasm1(SB)
1807+ MOVV $896, R12
1808+ JMP callbackasm1(SB)
1809+ MOVV $897, R12
1810+ JMP callbackasm1(SB)
1811+ MOVV $898, R12
1812+ JMP callbackasm1(SB)
1813+ MOVV $899, R12
1814+ JMP callbackasm1(SB)
1815+ MOVV $900, R12
1816+ JMP callbackasm1(SB)
1817+ MOVV $901, R12
1818+ JMP callbackasm1(SB)
1819+ MOVV $902, R12
1820+ JMP callbackasm1(SB)
1821+ MOVV $903, R12
1822+ JMP callbackasm1(SB)
1823+ MOVV $904, R12
1824+ JMP callbackasm1(SB)
1825+ MOVV $905, R12
1826+ JMP callbackasm1(SB)
1827+ MOVV $906, R12
1828+ JMP callbackasm1(SB)
1829+ MOVV $907, R12
1830+ JMP callbackasm1(SB)
1831+ MOVV $908, R12
1832+ JMP callbackasm1(SB)
1833+ MOVV $909, R12
1834+ JMP callbackasm1(SB)
1835+ MOVV $910, R12
1836+ JMP callbackasm1(SB)
1837+ MOVV $911, R12
1838+ JMP callbackasm1(SB)
1839+ MOVV $912, R12
1840+ JMP callbackasm1(SB)
1841+ MOVV $913, R12
1842+ JMP callbackasm1(SB)
1843+ MOVV $914, R12
1844+ JMP callbackasm1(SB)
1845+ MOVV $915, R12
1846+ JMP callbackasm1(SB)
1847+ MOVV $916, R12
1848+ JMP callbackasm1(SB)
1849+ MOVV $917, R12
1850+ JMP callbackasm1(SB)
1851+ MOVV $918, R12
1852+ JMP callbackasm1(SB)
1853+ MOVV $919, R12
1854+ JMP callbackasm1(SB)
1855+ MOVV $920, R12
1856+ JMP callbackasm1(SB)
1857+ MOVV $921, R12
1858+ JMP callbackasm1(SB)
1859+ MOVV $922, R12
1860+ JMP callbackasm1(SB)
1861+ MOVV $923, R12
1862+ JMP callbackasm1(SB)
1863+ MOVV $924, R12
1864+ JMP callbackasm1(SB)
1865+ MOVV $925, R12
1866+ JMP callbackasm1(SB)
1867+ MOVV $926, R12
1868+ JMP callbackasm1(SB)
1869+ MOVV $927, R12
1870+ JMP callbackasm1(SB)
1871+ MOVV $928, R12
1872+ JMP callbackasm1(SB)
1873+ MOVV $929, R12
1874+ JMP callbackasm1(SB)
1875+ MOVV $930, R12
1876+ JMP callbackasm1(SB)
1877+ MOVV $931, R12
1878+ JMP callbackasm1(SB)
1879+ MOVV $932, R12
1880+ JMP callbackasm1(SB)
1881+ MOVV $933, R12
1882+ JMP callbackasm1(SB)
1883+ MOVV $934, R12
1884+ JMP callbackasm1(SB)
1885+ MOVV $935, R12
1886+ JMP callbackasm1(SB)
1887+ MOVV $936, R12
1888+ JMP callbackasm1(SB)
1889+ MOVV $937, R12
1890+ JMP callbackasm1(SB)
1891+ MOVV $938, R12
1892+ JMP callbackasm1(SB)
1893+ MOVV $939, R12
1894+ JMP callbackasm1(SB)
1895+ MOVV $940, R12
1896+ JMP callbackasm1(SB)
1897+ MOVV $941, R12
1898+ JMP callbackasm1(SB)
1899+ MOVV $942, R12
1900+ JMP callbackasm1(SB)
1901+ MOVV $943, R12
1902+ JMP callbackasm1(SB)
1903+ MOVV $944, R12
1904+ JMP callbackasm1(SB)
1905+ MOVV $945, R12
1906+ JMP callbackasm1(SB)
1907+ MOVV $946, R12
1908+ JMP callbackasm1(SB)
1909+ MOVV $947, R12
1910+ JMP callbackasm1(SB)
1911+ MOVV $948, R12
1912+ JMP callbackasm1(SB)
1913+ MOVV $949, R12
1914+ JMP callbackasm1(SB)
1915+ MOVV $950, R12
1916+ JMP callbackasm1(SB)
1917+ MOVV $951, R12
1918+ JMP callbackasm1(SB)
1919+ MOVV $952, R12
1920+ JMP callbackasm1(SB)
1921+ MOVV $953, R12
1922+ JMP callbackasm1(SB)
1923+ MOVV $954, R12
1924+ JMP callbackasm1(SB)
1925+ MOVV $955, R12
1926+ JMP callbackasm1(SB)
1927+ MOVV $956, R12
1928+ JMP callbackasm1(SB)
1929+ MOVV $957, R12
1930+ JMP callbackasm1(SB)
1931+ MOVV $958, R12
1932+ JMP callbackasm1(SB)
1933+ MOVV $959, R12
1934+ JMP callbackasm1(SB)
1935+ MOVV $960, R12
1936+ JMP callbackasm1(SB)
1937+ MOVV $961, R12
1938+ JMP callbackasm1(SB)
1939+ MOVV $962, R12
1940+ JMP callbackasm1(SB)
1941+ MOVV $963, R12
1942+ JMP callbackasm1(SB)
1943+ MOVV $964, R12
1944+ JMP callbackasm1(SB)
1945+ MOVV $965, R12
1946+ JMP callbackasm1(SB)
1947+ MOVV $966, R12
1948+ JMP callbackasm1(SB)
1949+ MOVV $967, R12
1950+ JMP callbackasm1(SB)
1951+ MOVV $968, R12
1952+ JMP callbackasm1(SB)
1953+ MOVV $969, R12
1954+ JMP callbackasm1(SB)
1955+ MOVV $970, R12
1956+ JMP callbackasm1(SB)
1957+ MOVV $971, R12
1958+ JMP callbackasm1(SB)
1959+ MOVV $972, R12
1960+ JMP callbackasm1(SB)
1961+ MOVV $973, R12
1962+ JMP callbackasm1(SB)
1963+ MOVV $974, R12
1964+ JMP callbackasm1(SB)
1965+ MOVV $975, R12
1966+ JMP callbackasm1(SB)
1967+ MOVV $976, R12
1968+ JMP callbackasm1(SB)
1969+ MOVV $977, R12
1970+ JMP callbackasm1(SB)
1971+ MOVV $978, R12
1972+ JMP callbackasm1(SB)
1973+ MOVV $979, R12
1974+ JMP callbackasm1(SB)
1975+ MOVV $980, R12
1976+ JMP callbackasm1(SB)
1977+ MOVV $981, R12
1978+ JMP callbackasm1(SB)
1979+ MOVV $982, R12
1980+ JMP callbackasm1(SB)
1981+ MOVV $983, R12
1982+ JMP callbackasm1(SB)
1983+ MOVV $984, R12
1984+ JMP callbackasm1(SB)
1985+ MOVV $985, R12
1986+ JMP callbackasm1(SB)
1987+ MOVV $986, R12
1988+ JMP callbackasm1(SB)
1989+ MOVV $987, R12
1990+ JMP callbackasm1(SB)
1991+ MOVV $988, R12
1992+ JMP callbackasm1(SB)
1993+ MOVV $989, R12
1994+ JMP callbackasm1(SB)
1995+ MOVV $990, R12
1996+ JMP callbackasm1(SB)
1997+ MOVV $991, R12
1998+ JMP callbackasm1(SB)
1999+ MOVV $992, R12
2000+ JMP callbackasm1(SB)
2001+ MOVV $993, R12
2002+ JMP callbackasm1(SB)
2003+ MOVV $994, R12
2004+ JMP callbackasm1(SB)
2005+ MOVV $995, R12
2006+ JMP callbackasm1(SB)
2007+ MOVV $996, R12
2008+ JMP callbackasm1(SB)
2009+ MOVV $997, R12
2010+ JMP callbackasm1(SB)
2011+ MOVV $998, R12
2012+ JMP callbackasm1(SB)
2013+ MOVV $999, R12
2014+ JMP callbackasm1(SB)
2015+ MOVV $1000, R12
2016+ JMP callbackasm1(SB)
2017+ MOVV $1001, R12
2018+ JMP callbackasm1(SB)
2019+ MOVV $1002, R12
2020+ JMP callbackasm1(SB)
2021+ MOVV $1003, R12
2022+ JMP callbackasm1(SB)
2023+ MOVV $1004, R12
2024+ JMP callbackasm1(SB)
2025+ MOVV $1005, R12
2026+ JMP callbackasm1(SB)
2027+ MOVV $1006, R12
2028+ JMP callbackasm1(SB)
2029+ MOVV $1007, R12
2030+ JMP callbackasm1(SB)
2031+ MOVV $1008, R12
2032+ JMP callbackasm1(SB)
2033+ MOVV $1009, R12
2034+ JMP callbackasm1(SB)
2035+ MOVV $1010, R12
2036+ JMP callbackasm1(SB)
2037+ MOVV $1011, R12
2038+ JMP callbackasm1(SB)
2039+ MOVV $1012, R12
2040+ JMP callbackasm1(SB)
2041+ MOVV $1013, R12
2042+ JMP callbackasm1(SB)
2043+ MOVV $1014, R12
2044+ JMP callbackasm1(SB)
2045+ MOVV $1015, R12
2046+ JMP callbackasm1(SB)
2047+ MOVV $1016, R12
2048+ JMP callbackasm1(SB)
2049+ MOVV $1017, R12
2050+ JMP callbackasm1(SB)
2051+ MOVV $1018, R12
2052+ JMP callbackasm1(SB)
2053+ MOVV $1019, R12
2054+ JMP callbackasm1(SB)
2055+ MOVV $1020, R12
2056+ JMP callbackasm1(SB)
2057+ MOVV $1021, R12
2058+ JMP callbackasm1(SB)
2059+ MOVV $1022, R12
2060+ JMP callbackasm1(SB)
2061+ MOVV $1023, R12
2062+ JMP callbackasm1(SB)
2063+ MOVV $1024, R12
2064+ JMP callbackasm1(SB)
2065+ MOVV $1025, R12
2066+ JMP callbackasm1(SB)
2067+ MOVV $1026, R12
2068+ JMP callbackasm1(SB)
2069+ MOVV $1027, R12
2070+ JMP callbackasm1(SB)
2071+ MOVV $1028, R12
2072+ JMP callbackasm1(SB)
2073+ MOVV $1029, R12
2074+ JMP callbackasm1(SB)
2075+ MOVV $1030, R12
2076+ JMP callbackasm1(SB)
2077+ MOVV $1031, R12
2078+ JMP callbackasm1(SB)
2079+ MOVV $1032, R12
2080+ JMP callbackasm1(SB)
2081+ MOVV $1033, R12
2082+ JMP callbackasm1(SB)
2083+ MOVV $1034, R12
2084+ JMP callbackasm1(SB)
2085+ MOVV $1035, R12
2086+ JMP callbackasm1(SB)
2087+ MOVV $1036, R12
2088+ JMP callbackasm1(SB)
2089+ MOVV $1037, R12
2090+ JMP callbackasm1(SB)
2091+ MOVV $1038, R12
2092+ JMP callbackasm1(SB)
2093+ MOVV $1039, R12
2094+ JMP callbackasm1(SB)
2095+ MOVV $1040, R12
2096+ JMP callbackasm1(SB)
2097+ MOVV $1041, R12
2098+ JMP callbackasm1(SB)
2099+ MOVV $1042, R12
2100+ JMP callbackasm1(SB)
2101+ MOVV $1043, R12
2102+ JMP callbackasm1(SB)
2103+ MOVV $1044, R12
2104+ JMP callbackasm1(SB)
2105+ MOVV $1045, R12
2106+ JMP callbackasm1(SB)
2107+ MOVV $1046, R12
2108+ JMP callbackasm1(SB)
2109+ MOVV $1047, R12
2110+ JMP callbackasm1(SB)
2111+ MOVV $1048, R12
2112+ JMP callbackasm1(SB)
2113+ MOVV $1049, R12
2114+ JMP callbackasm1(SB)
2115+ MOVV $1050, R12
2116+ JMP callbackasm1(SB)
2117+ MOVV $1051, R12
2118+ JMP callbackasm1(SB)
2119+ MOVV $1052, R12
2120+ JMP callbackasm1(SB)
2121+ MOVV $1053, R12
2122+ JMP callbackasm1(SB)
2123+ MOVV $1054, R12
2124+ JMP callbackasm1(SB)
2125+ MOVV $1055, R12
2126+ JMP callbackasm1(SB)
2127+ MOVV $1056, R12
2128+ JMP callbackasm1(SB)
2129+ MOVV $1057, R12
2130+ JMP callbackasm1(SB)
2131+ MOVV $1058, R12
2132+ JMP callbackasm1(SB)
2133+ MOVV $1059, R12
2134+ JMP callbackasm1(SB)
2135+ MOVV $1060, R12
2136+ JMP callbackasm1(SB)
2137+ MOVV $1061, R12
2138+ JMP callbackasm1(SB)
2139+ MOVV $1062, R12
2140+ JMP callbackasm1(SB)
2141+ MOVV $1063, R12
2142+ JMP callbackasm1(SB)
2143+ MOVV $1064, R12
2144+ JMP callbackasm1(SB)
2145+ MOVV $1065, R12
2146+ JMP callbackasm1(SB)
2147+ MOVV $1066, R12
2148+ JMP callbackasm1(SB)
2149+ MOVV $1067, R12
2150+ JMP callbackasm1(SB)
2151+ MOVV $1068, R12
2152+ JMP callbackasm1(SB)
2153+ MOVV $1069, R12
2154+ JMP callbackasm1(SB)
2155+ MOVV $1070, R12
2156+ JMP callbackasm1(SB)
2157+ MOVV $1071, R12
2158+ JMP callbackasm1(SB)
2159+ MOVV $1072, R12
2160+ JMP callbackasm1(SB)
2161+ MOVV $1073, R12
2162+ JMP callbackasm1(SB)
2163+ MOVV $1074, R12
2164+ JMP callbackasm1(SB)
2165+ MOVV $1075, R12
2166+ JMP callbackasm1(SB)
2167+ MOVV $1076, R12
2168+ JMP callbackasm1(SB)
2169+ MOVV $1077, R12
2170+ JMP callbackasm1(SB)
2171+ MOVV $1078, R12
2172+ JMP callbackasm1(SB)
2173+ MOVV $1079, R12
2174+ JMP callbackasm1(SB)
2175+ MOVV $1080, R12
2176+ JMP callbackasm1(SB)
2177+ MOVV $1081, R12
2178+ JMP callbackasm1(SB)
2179+ MOVV $1082, R12
2180+ JMP callbackasm1(SB)
2181+ MOVV $1083, R12
2182+ JMP callbackasm1(SB)
2183+ MOVV $1084, R12
2184+ JMP callbackasm1(SB)
2185+ MOVV $1085, R12
2186+ JMP callbackasm1(SB)
2187+ MOVV $1086, R12
2188+ JMP callbackasm1(SB)
2189+ MOVV $1087, R12
2190+ JMP callbackasm1(SB)
2191+ MOVV $1088, R12
2192+ JMP callbackasm1(SB)
2193+ MOVV $1089, R12
2194+ JMP callbackasm1(SB)
2195+ MOVV $1090, R12
2196+ JMP callbackasm1(SB)
2197+ MOVV $1091, R12
2198+ JMP callbackasm1(SB)
2199+ MOVV $1092, R12
2200+ JMP callbackasm1(SB)
2201+ MOVV $1093, R12
2202+ JMP callbackasm1(SB)
2203+ MOVV $1094, R12
2204+ JMP callbackasm1(SB)
2205+ MOVV $1095, R12
2206+ JMP callbackasm1(SB)
2207+ MOVV $1096, R12
2208+ JMP callbackasm1(SB)
2209+ MOVV $1097, R12
2210+ JMP callbackasm1(SB)
2211+ MOVV $1098, R12
2212+ JMP callbackasm1(SB)
2213+ MOVV $1099, R12
2214+ JMP callbackasm1(SB)
2215+ MOVV $1100, R12
2216+ JMP callbackasm1(SB)
2217+ MOVV $1101, R12
2218+ JMP callbackasm1(SB)
2219+ MOVV $1102, R12
2220+ JMP callbackasm1(SB)
2221+ MOVV $1103, R12
2222+ JMP callbackasm1(SB)
2223+ MOVV $1104, R12
2224+ JMP callbackasm1(SB)
2225+ MOVV $1105, R12
2226+ JMP callbackasm1(SB)
2227+ MOVV $1106, R12
2228+ JMP callbackasm1(SB)
2229+ MOVV $1107, R12
2230+ JMP callbackasm1(SB)
2231+ MOVV $1108, R12
2232+ JMP callbackasm1(SB)
2233+ MOVV $1109, R12
2234+ JMP callbackasm1(SB)
2235+ MOVV $1110, R12
2236+ JMP callbackasm1(SB)
2237+ MOVV $1111, R12
2238+ JMP callbackasm1(SB)
2239+ MOVV $1112, R12
2240+ JMP callbackasm1(SB)
2241+ MOVV $1113, R12
2242+ JMP callbackasm1(SB)
2243+ MOVV $1114, R12
2244+ JMP callbackasm1(SB)
2245+ MOVV $1115, R12
2246+ JMP callbackasm1(SB)
2247+ MOVV $1116, R12
2248+ JMP callbackasm1(SB)
2249+ MOVV $1117, R12
2250+ JMP callbackasm1(SB)
2251+ MOVV $1118, R12
2252+ JMP callbackasm1(SB)
2253+ MOVV $1119, R12
2254+ JMP callbackasm1(SB)
2255+ MOVV $1120, R12
2256+ JMP callbackasm1(SB)
2257+ MOVV $1121, R12
2258+ JMP callbackasm1(SB)
2259+ MOVV $1122, R12
2260+ JMP callbackasm1(SB)
2261+ MOVV $1123, R12
2262+ JMP callbackasm1(SB)
2263+ MOVV $1124, R12
2264+ JMP callbackasm1(SB)
2265+ MOVV $1125, R12
2266+ JMP callbackasm1(SB)
2267+ MOVV $1126, R12
2268+ JMP callbackasm1(SB)
2269+ MOVV $1127, R12
2270+ JMP callbackasm1(SB)
2271+ MOVV $1128, R12
2272+ JMP callbackasm1(SB)
2273+ MOVV $1129, R12
2274+ JMP callbackasm1(SB)
2275+ MOVV $1130, R12
2276+ JMP callbackasm1(SB)
2277+ MOVV $1131, R12
2278+ JMP callbackasm1(SB)
2279+ MOVV $1132, R12
2280+ JMP callbackasm1(SB)
2281+ MOVV $1133, R12
2282+ JMP callbackasm1(SB)
2283+ MOVV $1134, R12
2284+ JMP callbackasm1(SB)
2285+ MOVV $1135, R12
2286+ JMP callbackasm1(SB)
2287+ MOVV $1136, R12
2288+ JMP callbackasm1(SB)
2289+ MOVV $1137, R12
2290+ JMP callbackasm1(SB)
2291+ MOVV $1138, R12
2292+ JMP callbackasm1(SB)
2293+ MOVV $1139, R12
2294+ JMP callbackasm1(SB)
2295+ MOVV $1140, R12
2296+ JMP callbackasm1(SB)
2297+ MOVV $1141, R12
2298+ JMP callbackasm1(SB)
2299+ MOVV $1142, R12
2300+ JMP callbackasm1(SB)
2301+ MOVV $1143, R12
2302+ JMP callbackasm1(SB)
2303+ MOVV $1144, R12
2304+ JMP callbackasm1(SB)
2305+ MOVV $1145, R12
2306+ JMP callbackasm1(SB)
2307+ MOVV $1146, R12
2308+ JMP callbackasm1(SB)
2309+ MOVV $1147, R12
2310+ JMP callbackasm1(SB)
2311+ MOVV $1148, R12
2312+ JMP callbackasm1(SB)
2313+ MOVV $1149, R12
2314+ JMP callbackasm1(SB)
2315+ MOVV $1150, R12
2316+ JMP callbackasm1(SB)
2317+ MOVV $1151, R12
2318+ JMP callbackasm1(SB)
2319+ MOVV $1152, R12
2320+ JMP callbackasm1(SB)
2321+ MOVV $1153, R12
2322+ JMP callbackasm1(SB)
2323+ MOVV $1154, R12
2324+ JMP callbackasm1(SB)
2325+ MOVV $1155, R12
2326+ JMP callbackasm1(SB)
2327+ MOVV $1156, R12
2328+ JMP callbackasm1(SB)
2329+ MOVV $1157, R12
2330+ JMP callbackasm1(SB)
2331+ MOVV $1158, R12
2332+ JMP callbackasm1(SB)
2333+ MOVV $1159, R12
2334+ JMP callbackasm1(SB)
2335+ MOVV $1160, R12
2336+ JMP callbackasm1(SB)
2337+ MOVV $1161, R12
2338+ JMP callbackasm1(SB)
2339+ MOVV $1162, R12
2340+ JMP callbackasm1(SB)
2341+ MOVV $1163, R12
2342+ JMP callbackasm1(SB)
2343+ MOVV $1164, R12
2344+ JMP callbackasm1(SB)
2345+ MOVV $1165, R12
2346+ JMP callbackasm1(SB)
2347+ MOVV $1166, R12
2348+ JMP callbackasm1(SB)
2349+ MOVV $1167, R12
2350+ JMP callbackasm1(SB)
2351+ MOVV $1168, R12
2352+ JMP callbackasm1(SB)
2353+ MOVV $1169, R12
2354+ JMP callbackasm1(SB)
2355+ MOVV $1170, R12
2356+ JMP callbackasm1(SB)
2357+ MOVV $1171, R12
2358+ JMP callbackasm1(SB)
2359+ MOVV $1172, R12
2360+ JMP callbackasm1(SB)
2361+ MOVV $1173, R12
2362+ JMP callbackasm1(SB)
2363+ MOVV $1174, R12
2364+ JMP callbackasm1(SB)
2365+ MOVV $1175, R12
2366+ JMP callbackasm1(SB)
2367+ MOVV $1176, R12
2368+ JMP callbackasm1(SB)
2369+ MOVV $1177, R12
2370+ JMP callbackasm1(SB)
2371+ MOVV $1178, R12
2372+ JMP callbackasm1(SB)
2373+ MOVV $1179, R12
2374+ JMP callbackasm1(SB)
2375+ MOVV $1180, R12
2376+ JMP callbackasm1(SB)
2377+ MOVV $1181, R12
2378+ JMP callbackasm1(SB)
2379+ MOVV $1182, R12
2380+ JMP callbackasm1(SB)
2381+ MOVV $1183, R12
2382+ JMP callbackasm1(SB)
2383+ MOVV $1184, R12
2384+ JMP callbackasm1(SB)
2385+ MOVV $1185, R12
2386+ JMP callbackasm1(SB)
2387+ MOVV $1186, R12
2388+ JMP callbackasm1(SB)
2389+ MOVV $1187, R12
2390+ JMP callbackasm1(SB)
2391+ MOVV $1188, R12
2392+ JMP callbackasm1(SB)
2393+ MOVV $1189, R12
2394+ JMP callbackasm1(SB)
2395+ MOVV $1190, R12
2396+ JMP callbackasm1(SB)
2397+ MOVV $1191, R12
2398+ JMP callbackasm1(SB)
2399+ MOVV $1192, R12
2400+ JMP callbackasm1(SB)
2401+ MOVV $1193, R12
2402+ JMP callbackasm1(SB)
2403+ MOVV $1194, R12
2404+ JMP callbackasm1(SB)
2405+ MOVV $1195, R12
2406+ JMP callbackasm1(SB)
2407+ MOVV $1196, R12
2408+ JMP callbackasm1(SB)
2409+ MOVV $1197, R12
2410+ JMP callbackasm1(SB)
2411+ MOVV $1198, R12
2412+ JMP callbackasm1(SB)
2413+ MOVV $1199, R12
2414+ JMP callbackasm1(SB)
2415+ MOVV $1200, R12
2416+ JMP callbackasm1(SB)
2417+ MOVV $1201, R12
2418+ JMP callbackasm1(SB)
2419+ MOVV $1202, R12
2420+ JMP callbackasm1(SB)
2421+ MOVV $1203, R12
2422+ JMP callbackasm1(SB)
2423+ MOVV $1204, R12
2424+ JMP callbackasm1(SB)
2425+ MOVV $1205, R12
2426+ JMP callbackasm1(SB)
2427+ MOVV $1206, R12
2428+ JMP callbackasm1(SB)
2429+ MOVV $1207, R12
2430+ JMP callbackasm1(SB)
2431+ MOVV $1208, R12
2432+ JMP callbackasm1(SB)
2433+ MOVV $1209, R12
2434+ JMP callbackasm1(SB)
2435+ MOVV $1210, R12
2436+ JMP callbackasm1(SB)
2437+ MOVV $1211, R12
2438+ JMP callbackasm1(SB)
2439+ MOVV $1212, R12
2440+ JMP callbackasm1(SB)
2441+ MOVV $1213, R12
2442+ JMP callbackasm1(SB)
2443+ MOVV $1214, R12
2444+ JMP callbackasm1(SB)
2445+ MOVV $1215, R12
2446+ JMP callbackasm1(SB)
2447+ MOVV $1216, R12
2448+ JMP callbackasm1(SB)
2449+ MOVV $1217, R12
2450+ JMP callbackasm1(SB)
2451+ MOVV $1218, R12
2452+ JMP callbackasm1(SB)
2453+ MOVV $1219, R12
2454+ JMP callbackasm1(SB)
2455+ MOVV $1220, R12
2456+ JMP callbackasm1(SB)
2457+ MOVV $1221, R12
2458+ JMP callbackasm1(SB)
2459+ MOVV $1222, R12
2460+ JMP callbackasm1(SB)
2461+ MOVV $1223, R12
2462+ JMP callbackasm1(SB)
2463+ MOVV $1224, R12
2464+ JMP callbackasm1(SB)
2465+ MOVV $1225, R12
2466+ JMP callbackasm1(SB)
2467+ MOVV $1226, R12
2468+ JMP callbackasm1(SB)
2469+ MOVV $1227, R12
2470+ JMP callbackasm1(SB)
2471+ MOVV $1228, R12
2472+ JMP callbackasm1(SB)
2473+ MOVV $1229, R12
2474+ JMP callbackasm1(SB)
2475+ MOVV $1230, R12
2476+ JMP callbackasm1(SB)
2477+ MOVV $1231, R12
2478+ JMP callbackasm1(SB)
2479+ MOVV $1232, R12
2480+ JMP callbackasm1(SB)
2481+ MOVV $1233, R12
2482+ JMP callbackasm1(SB)
2483+ MOVV $1234, R12
2484+ JMP callbackasm1(SB)
2485+ MOVV $1235, R12
2486+ JMP callbackasm1(SB)
2487+ MOVV $1236, R12
2488+ JMP callbackasm1(SB)
2489+ MOVV $1237, R12
2490+ JMP callbackasm1(SB)
2491+ MOVV $1238, R12
2492+ JMP callbackasm1(SB)
2493+ MOVV $1239, R12
2494+ JMP callbackasm1(SB)
2495+ MOVV $1240, R12
2496+ JMP callbackasm1(SB)
2497+ MOVV $1241, R12
2498+ JMP callbackasm1(SB)
2499+ MOVV $1242, R12
2500+ JMP callbackasm1(SB)
2501+ MOVV $1243, R12
2502+ JMP callbackasm1(SB)
2503+ MOVV $1244, R12
2504+ JMP callbackasm1(SB)
2505+ MOVV $1245, R12
2506+ JMP callbackasm1(SB)
2507+ MOVV $1246, R12
2508+ JMP callbackasm1(SB)
2509+ MOVV $1247, R12
2510+ JMP callbackasm1(SB)
2511+ MOVV $1248, R12
2512+ JMP callbackasm1(SB)
2513+ MOVV $1249, R12
2514+ JMP callbackasm1(SB)
2515+ MOVV $1250, R12
2516+ JMP callbackasm1(SB)
2517+ MOVV $1251, R12
2518+ JMP callbackasm1(SB)
2519+ MOVV $1252, R12
2520+ JMP callbackasm1(SB)
2521+ MOVV $1253, R12
2522+ JMP callbackasm1(SB)
2523+ MOVV $1254, R12
2524+ JMP callbackasm1(SB)
2525+ MOVV $1255, R12
2526+ JMP callbackasm1(SB)
2527+ MOVV $1256, R12
2528+ JMP callbackasm1(SB)
2529+ MOVV $1257, R12
2530+ JMP callbackasm1(SB)
2531+ MOVV $1258, R12
2532+ JMP callbackasm1(SB)
2533+ MOVV $1259, R12
2534+ JMP callbackasm1(SB)
2535+ MOVV $1260, R12
2536+ JMP callbackasm1(SB)
2537+ MOVV $1261, R12
2538+ JMP callbackasm1(SB)
2539+ MOVV $1262, R12
2540+ JMP callbackasm1(SB)
2541+ MOVV $1263, R12
2542+ JMP callbackasm1(SB)
2543+ MOVV $1264, R12
2544+ JMP callbackasm1(SB)
2545+ MOVV $1265, R12
2546+ JMP callbackasm1(SB)
2547+ MOVV $1266, R12
2548+ JMP callbackasm1(SB)
2549+ MOVV $1267, R12
2550+ JMP callbackasm1(SB)
2551+ MOVV $1268, R12
2552+ JMP callbackasm1(SB)
2553+ MOVV $1269, R12
2554+ JMP callbackasm1(SB)
2555+ MOVV $1270, R12
2556+ JMP callbackasm1(SB)
2557+ MOVV $1271, R12
2558+ JMP callbackasm1(SB)
2559+ MOVV $1272, R12
2560+ JMP callbackasm1(SB)
2561+ MOVV $1273, R12
2562+ JMP callbackasm1(SB)
2563+ MOVV $1274, R12
2564+ JMP callbackasm1(SB)
2565+ MOVV $1275, R12
2566+ JMP callbackasm1(SB)
2567+ MOVV $1276, R12
2568+ JMP callbackasm1(SB)
2569+ MOVV $1277, R12
2570+ JMP callbackasm1(SB)
2571+ MOVV $1278, R12
2572+ JMP callbackasm1(SB)
2573+ MOVV $1279, R12
2574+ JMP callbackasm1(SB)
2575+ MOVV $1280, R12
2576+ JMP callbackasm1(SB)
2577+ MOVV $1281, R12
2578+ JMP callbackasm1(SB)
2579+ MOVV $1282, R12
2580+ JMP callbackasm1(SB)
2581+ MOVV $1283, R12
2582+ JMP callbackasm1(SB)
2583+ MOVV $1284, R12
2584+ JMP callbackasm1(SB)
2585+ MOVV $1285, R12
2586+ JMP callbackasm1(SB)
2587+ MOVV $1286, R12
2588+ JMP callbackasm1(SB)
2589+ MOVV $1287, R12
2590+ JMP callbackasm1(SB)
2591+ MOVV $1288, R12
2592+ JMP callbackasm1(SB)
2593+ MOVV $1289, R12
2594+ JMP callbackasm1(SB)
2595+ MOVV $1290, R12
2596+ JMP callbackasm1(SB)
2597+ MOVV $1291, R12
2598+ JMP callbackasm1(SB)
2599+ MOVV $1292, R12
2600+ JMP callbackasm1(SB)
2601+ MOVV $1293, R12
2602+ JMP callbackasm1(SB)
2603+ MOVV $1294, R12
2604+ JMP callbackasm1(SB)
2605+ MOVV $1295, R12
2606+ JMP callbackasm1(SB)
2607+ MOVV $1296, R12
2608+ JMP callbackasm1(SB)
2609+ MOVV $1297, R12
2610+ JMP callbackasm1(SB)
2611+ MOVV $1298, R12
2612+ JMP callbackasm1(SB)
2613+ MOVV $1299, R12
2614+ JMP callbackasm1(SB)
2615+ MOVV $1300, R12
2616+ JMP callbackasm1(SB)
2617+ MOVV $1301, R12
2618+ JMP callbackasm1(SB)
2619+ MOVV $1302, R12
2620+ JMP callbackasm1(SB)
2621+ MOVV $1303, R12
2622+ JMP callbackasm1(SB)
2623+ MOVV $1304, R12
2624+ JMP callbackasm1(SB)
2625+ MOVV $1305, R12
2626+ JMP callbackasm1(SB)
2627+ MOVV $1306, R12
2628+ JMP callbackasm1(SB)
2629+ MOVV $1307, R12
2630+ JMP callbackasm1(SB)
2631+ MOVV $1308, R12
2632+ JMP callbackasm1(SB)
2633+ MOVV $1309, R12
2634+ JMP callbackasm1(SB)
2635+ MOVV $1310, R12
2636+ JMP callbackasm1(SB)
2637+ MOVV $1311, R12
2638+ JMP callbackasm1(SB)
2639+ MOVV $1312, R12
2640+ JMP callbackasm1(SB)
2641+ MOVV $1313, R12
2642+ JMP callbackasm1(SB)
2643+ MOVV $1314, R12
2644+ JMP callbackasm1(SB)
2645+ MOVV $1315, R12
2646+ JMP callbackasm1(SB)
2647+ MOVV $1316, R12
2648+ JMP callbackasm1(SB)
2649+ MOVV $1317, R12
2650+ JMP callbackasm1(SB)
2651+ MOVV $1318, R12
2652+ JMP callbackasm1(SB)
2653+ MOVV $1319, R12
2654+ JMP callbackasm1(SB)
2655+ MOVV $1320, R12
2656+ JMP callbackasm1(SB)
2657+ MOVV $1321, R12
2658+ JMP callbackasm1(SB)
2659+ MOVV $1322, R12
2660+ JMP callbackasm1(SB)
2661+ MOVV $1323, R12
2662+ JMP callbackasm1(SB)
2663+ MOVV $1324, R12
2664+ JMP callbackasm1(SB)
2665+ MOVV $1325, R12
2666+ JMP callbackasm1(SB)
2667+ MOVV $1326, R12
2668+ JMP callbackasm1(SB)
2669+ MOVV $1327, R12
2670+ JMP callbackasm1(SB)
2671+ MOVV $1328, R12
2672+ JMP callbackasm1(SB)
2673+ MOVV $1329, R12
2674+ JMP callbackasm1(SB)
2675+ MOVV $1330, R12
2676+ JMP callbackasm1(SB)
2677+ MOVV $1331, R12
2678+ JMP callbackasm1(SB)
2679+ MOVV $1332, R12
2680+ JMP callbackasm1(SB)
2681+ MOVV $1333, R12
2682+ JMP callbackasm1(SB)
2683+ MOVV $1334, R12
2684+ JMP callbackasm1(SB)
2685+ MOVV $1335, R12
2686+ JMP callbackasm1(SB)
2687+ MOVV $1336, R12
2688+ JMP callbackasm1(SB)
2689+ MOVV $1337, R12
2690+ JMP callbackasm1(SB)
2691+ MOVV $1338, R12
2692+ JMP callbackasm1(SB)
2693+ MOVV $1339, R12
2694+ JMP callbackasm1(SB)
2695+ MOVV $1340, R12
2696+ JMP callbackasm1(SB)
2697+ MOVV $1341, R12
2698+ JMP callbackasm1(SB)
2699+ MOVV $1342, R12
2700+ JMP callbackasm1(SB)
2701+ MOVV $1343, R12
2702+ JMP callbackasm1(SB)
2703+ MOVV $1344, R12
2704+ JMP callbackasm1(SB)
2705+ MOVV $1345, R12
2706+ JMP callbackasm1(SB)
2707+ MOVV $1346, R12
2708+ JMP callbackasm1(SB)
2709+ MOVV $1347, R12
2710+ JMP callbackasm1(SB)
2711+ MOVV $1348, R12
2712+ JMP callbackasm1(SB)
2713+ MOVV $1349, R12
2714+ JMP callbackasm1(SB)
2715+ MOVV $1350, R12
2716+ JMP callbackasm1(SB)
2717+ MOVV $1351, R12
2718+ JMP callbackasm1(SB)
2719+ MOVV $1352, R12
2720+ JMP callbackasm1(SB)
2721+ MOVV $1353, R12
2722+ JMP callbackasm1(SB)
2723+ MOVV $1354, R12
2724+ JMP callbackasm1(SB)
2725+ MOVV $1355, R12
2726+ JMP callbackasm1(SB)
2727+ MOVV $1356, R12
2728+ JMP callbackasm1(SB)
2729+ MOVV $1357, R12
2730+ JMP callbackasm1(SB)
2731+ MOVV $1358, R12
2732+ JMP callbackasm1(SB)
2733+ MOVV $1359, R12
2734+ JMP callbackasm1(SB)
2735+ MOVV $1360, R12
2736+ JMP callbackasm1(SB)
2737+ MOVV $1361, R12
2738+ JMP callbackasm1(SB)
2739+ MOVV $1362, R12
2740+ JMP callbackasm1(SB)
2741+ MOVV $1363, R12
2742+ JMP callbackasm1(SB)
2743+ MOVV $1364, R12
2744+ JMP callbackasm1(SB)
2745+ MOVV $1365, R12
2746+ JMP callbackasm1(SB)
2747+ MOVV $1366, R12
2748+ JMP callbackasm1(SB)
2749+ MOVV $1367, R12
2750+ JMP callbackasm1(SB)
2751+ MOVV $1368, R12
2752+ JMP callbackasm1(SB)
2753+ MOVV $1369, R12
2754+ JMP callbackasm1(SB)
2755+ MOVV $1370, R12
2756+ JMP callbackasm1(SB)
2757+ MOVV $1371, R12
2758+ JMP callbackasm1(SB)
2759+ MOVV $1372, R12
2760+ JMP callbackasm1(SB)
2761+ MOVV $1373, R12
2762+ JMP callbackasm1(SB)
2763+ MOVV $1374, R12
2764+ JMP callbackasm1(SB)
2765+ MOVV $1375, R12
2766+ JMP callbackasm1(SB)
2767+ MOVV $1376, R12
2768+ JMP callbackasm1(SB)
2769+ MOVV $1377, R12
2770+ JMP callbackasm1(SB)
2771+ MOVV $1378, R12
2772+ JMP callbackasm1(SB)
2773+ MOVV $1379, R12
2774+ JMP callbackasm1(SB)
2775+ MOVV $1380, R12
2776+ JMP callbackasm1(SB)
2777+ MOVV $1381, R12
2778+ JMP callbackasm1(SB)
2779+ MOVV $1382, R12
2780+ JMP callbackasm1(SB)
2781+ MOVV $1383, R12
2782+ JMP callbackasm1(SB)
2783+ MOVV $1384, R12
2784+ JMP callbackasm1(SB)
2785+ MOVV $1385, R12
2786+ JMP callbackasm1(SB)
2787+ MOVV $1386, R12
2788+ JMP callbackasm1(SB)
2789+ MOVV $1387, R12
2790+ JMP callbackasm1(SB)
2791+ MOVV $1388, R12
2792+ JMP callbackasm1(SB)
2793+ MOVV $1389, R12
2794+ JMP callbackasm1(SB)
2795+ MOVV $1390, R12
2796+ JMP callbackasm1(SB)
2797+ MOVV $1391, R12
2798+ JMP callbackasm1(SB)
2799+ MOVV $1392, R12
2800+ JMP callbackasm1(SB)
2801+ MOVV $1393, R12
2802+ JMP callbackasm1(SB)
2803+ MOVV $1394, R12
2804+ JMP callbackasm1(SB)
2805+ MOVV $1395, R12
2806+ JMP callbackasm1(SB)
2807+ MOVV $1396, R12
2808+ JMP callbackasm1(SB)
2809+ MOVV $1397, R12
2810+ JMP callbackasm1(SB)
2811+ MOVV $1398, R12
2812+ JMP callbackasm1(SB)
2813+ MOVV $1399, R12
2814+ JMP callbackasm1(SB)
2815+ MOVV $1400, R12
2816+ JMP callbackasm1(SB)
2817+ MOVV $1401, R12
2818+ JMP callbackasm1(SB)
2819+ MOVV $1402, R12
2820+ JMP callbackasm1(SB)
2821+ MOVV $1403, R12
2822+ JMP callbackasm1(SB)
2823+ MOVV $1404, R12
2824+ JMP callbackasm1(SB)
2825+ MOVV $1405, R12
2826+ JMP callbackasm1(SB)
2827+ MOVV $1406, R12
2828+ JMP callbackasm1(SB)
2829+ MOVV $1407, R12
2830+ JMP callbackasm1(SB)
2831+ MOVV $1408, R12
2832+ JMP callbackasm1(SB)
2833+ MOVV $1409, R12
2834+ JMP callbackasm1(SB)
2835+ MOVV $1410, R12
2836+ JMP callbackasm1(SB)
2837+ MOVV $1411, R12
2838+ JMP callbackasm1(SB)
2839+ MOVV $1412, R12
2840+ JMP callbackasm1(SB)
2841+ MOVV $1413, R12
2842+ JMP callbackasm1(SB)
2843+ MOVV $1414, R12
2844+ JMP callbackasm1(SB)
2845+ MOVV $1415, R12
2846+ JMP callbackasm1(SB)
2847+ MOVV $1416, R12
2848+ JMP callbackasm1(SB)
2849+ MOVV $1417, R12
2850+ JMP callbackasm1(SB)
2851+ MOVV $1418, R12
2852+ JMP callbackasm1(SB)
2853+ MOVV $1419, R12
2854+ JMP callbackasm1(SB)
2855+ MOVV $1420, R12
2856+ JMP callbackasm1(SB)
2857+ MOVV $1421, R12
2858+ JMP callbackasm1(SB)
2859+ MOVV $1422, R12
2860+ JMP callbackasm1(SB)
2861+ MOVV $1423, R12
2862+ JMP callbackasm1(SB)
2863+ MOVV $1424, R12
2864+ JMP callbackasm1(SB)
2865+ MOVV $1425, R12
2866+ JMP callbackasm1(SB)
2867+ MOVV $1426, R12
2868+ JMP callbackasm1(SB)
2869+ MOVV $1427, R12
2870+ JMP callbackasm1(SB)
2871+ MOVV $1428, R12
2872+ JMP callbackasm1(SB)
2873+ MOVV $1429, R12
2874+ JMP callbackasm1(SB)
2875+ MOVV $1430, R12
2876+ JMP callbackasm1(SB)
2877+ MOVV $1431, R12
2878+ JMP callbackasm1(SB)
2879+ MOVV $1432, R12
2880+ JMP callbackasm1(SB)
2881+ MOVV $1433, R12
2882+ JMP callbackasm1(SB)
2883+ MOVV $1434, R12
2884+ JMP callbackasm1(SB)
2885+ MOVV $1435, R12
2886+ JMP callbackasm1(SB)
2887+ MOVV $1436, R12
2888+ JMP callbackasm1(SB)
2889+ MOVV $1437, R12
2890+ JMP callbackasm1(SB)
2891+ MOVV $1438, R12
2892+ JMP callbackasm1(SB)
2893+ MOVV $1439, R12
2894+ JMP callbackasm1(SB)
2895+ MOVV $1440, R12
2896+ JMP callbackasm1(SB)
2897+ MOVV $1441, R12
2898+ JMP callbackasm1(SB)
2899+ MOVV $1442, R12
2900+ JMP callbackasm1(SB)
2901+ MOVV $1443, R12
2902+ JMP callbackasm1(SB)
2903+ MOVV $1444, R12
2904+ JMP callbackasm1(SB)
2905+ MOVV $1445, R12
2906+ JMP callbackasm1(SB)
2907+ MOVV $1446, R12
2908+ JMP callbackasm1(SB)
2909+ MOVV $1447, R12
2910+ JMP callbackasm1(SB)
2911+ MOVV $1448, R12
2912+ JMP callbackasm1(SB)
2913+ MOVV $1449, R12
2914+ JMP callbackasm1(SB)
2915+ MOVV $1450, R12
2916+ JMP callbackasm1(SB)
2917+ MOVV $1451, R12
2918+ JMP callbackasm1(SB)
2919+ MOVV $1452, R12
2920+ JMP callbackasm1(SB)
2921+ MOVV $1453, R12
2922+ JMP callbackasm1(SB)
2923+ MOVV $1454, R12
2924+ JMP callbackasm1(SB)
2925+ MOVV $1455, R12
2926+ JMP callbackasm1(SB)
2927+ MOVV $1456, R12
2928+ JMP callbackasm1(SB)
2929+ MOVV $1457, R12
2930+ JMP callbackasm1(SB)
2931+ MOVV $1458, R12
2932+ JMP callbackasm1(SB)
2933+ MOVV $1459, R12
2934+ JMP callbackasm1(SB)
2935+ MOVV $1460, R12
2936+ JMP callbackasm1(SB)
2937+ MOVV $1461, R12
2938+ JMP callbackasm1(SB)
2939+ MOVV $1462, R12
2940+ JMP callbackasm1(SB)
2941+ MOVV $1463, R12
2942+ JMP callbackasm1(SB)
2943+ MOVV $1464, R12
2944+ JMP callbackasm1(SB)
2945+ MOVV $1465, R12
2946+ JMP callbackasm1(SB)
2947+ MOVV $1466, R12
2948+ JMP callbackasm1(SB)
2949+ MOVV $1467, R12
2950+ JMP callbackasm1(SB)
2951+ MOVV $1468, R12
2952+ JMP callbackasm1(SB)
2953+ MOVV $1469, R12
2954+ JMP callbackasm1(SB)
2955+ MOVV $1470, R12
2956+ JMP callbackasm1(SB)
2957+ MOVV $1471, R12
2958+ JMP callbackasm1(SB)
2959+ MOVV $1472, R12
2960+ JMP callbackasm1(SB)
2961+ MOVV $1473, R12
2962+ JMP callbackasm1(SB)
2963+ MOVV $1474, R12
2964+ JMP callbackasm1(SB)
2965+ MOVV $1475, R12
2966+ JMP callbackasm1(SB)
2967+ MOVV $1476, R12
2968+ JMP callbackasm1(SB)
2969+ MOVV $1477, R12
2970+ JMP callbackasm1(SB)
2971+ MOVV $1478, R12
2972+ JMP callbackasm1(SB)
2973+ MOVV $1479, R12
2974+ JMP callbackasm1(SB)
2975+ MOVV $1480, R12
2976+ JMP callbackasm1(SB)
2977+ MOVV $1481, R12
2978+ JMP callbackasm1(SB)
2979+ MOVV $1482, R12
2980+ JMP callbackasm1(SB)
2981+ MOVV $1483, R12
2982+ JMP callbackasm1(SB)
2983+ MOVV $1484, R12
2984+ JMP callbackasm1(SB)
2985+ MOVV $1485, R12
2986+ JMP callbackasm1(SB)
2987+ MOVV $1486, R12
2988+ JMP callbackasm1(SB)
2989+ MOVV $1487, R12
2990+ JMP callbackasm1(SB)
2991+ MOVV $1488, R12
2992+ JMP callbackasm1(SB)
2993+ MOVV $1489, R12
2994+ JMP callbackasm1(SB)
2995+ MOVV $1490, R12
2996+ JMP callbackasm1(SB)
2997+ MOVV $1491, R12
2998+ JMP callbackasm1(SB)
2999+ MOVV $1492, R12
3000+ JMP callbackasm1(SB)
3001+ MOVV $1493, R12
3002+ JMP callbackasm1(SB)
3003+ MOVV $1494, R12
3004+ JMP callbackasm1(SB)
3005+ MOVV $1495, R12
3006+ JMP callbackasm1(SB)
3007+ MOVV $1496, R12
3008+ JMP callbackasm1(SB)
3009+ MOVV $1497, R12
3010+ JMP callbackasm1(SB)
3011+ MOVV $1498, R12
3012+ JMP callbackasm1(SB)
3013+ MOVV $1499, R12
3014+ JMP callbackasm1(SB)
3015+ MOVV $1500, R12
3016+ JMP callbackasm1(SB)
3017+ MOVV $1501, R12
3018+ JMP callbackasm1(SB)
3019+ MOVV $1502, R12
3020+ JMP callbackasm1(SB)
3021+ MOVV $1503, R12
3022+ JMP callbackasm1(SB)
3023+ MOVV $1504, R12
3024+ JMP callbackasm1(SB)
3025+ MOVV $1505, R12
3026+ JMP callbackasm1(SB)
3027+ MOVV $1506, R12
3028+ JMP callbackasm1(SB)
3029+ MOVV $1507, R12
3030+ JMP callbackasm1(SB)
3031+ MOVV $1508, R12
3032+ JMP callbackasm1(SB)
3033+ MOVV $1509, R12
3034+ JMP callbackasm1(SB)
3035+ MOVV $1510, R12
3036+ JMP callbackasm1(SB)
3037+ MOVV $1511, R12
3038+ JMP callbackasm1(SB)
3039+ MOVV $1512, R12
3040+ JMP callbackasm1(SB)
3041+ MOVV $1513, R12
3042+ JMP callbackasm1(SB)
3043+ MOVV $1514, R12
3044+ JMP callbackasm1(SB)
3045+ MOVV $1515, R12
3046+ JMP callbackasm1(SB)
3047+ MOVV $1516, R12
3048+ JMP callbackasm1(SB)
3049+ MOVV $1517, R12
3050+ JMP callbackasm1(SB)
3051+ MOVV $1518, R12
3052+ JMP callbackasm1(SB)
3053+ MOVV $1519, R12
3054+ JMP callbackasm1(SB)
3055+ MOVV $1520, R12
3056+ JMP callbackasm1(SB)
3057+ MOVV $1521, R12
3058+ JMP callbackasm1(SB)
3059+ MOVV $1522, R12
3060+ JMP callbackasm1(SB)
3061+ MOVV $1523, R12
3062+ JMP callbackasm1(SB)
3063+ MOVV $1524, R12
3064+ JMP callbackasm1(SB)
3065+ MOVV $1525, R12
3066+ JMP callbackasm1(SB)
3067+ MOVV $1526, R12
3068+ JMP callbackasm1(SB)
3069+ MOVV $1527, R12
3070+ JMP callbackasm1(SB)
3071+ MOVV $1528, R12
3072+ JMP callbackasm1(SB)
3073+ MOVV $1529, R12
3074+ JMP callbackasm1(SB)
3075+ MOVV $1530, R12
3076+ JMP callbackasm1(SB)
3077+ MOVV $1531, R12
3078+ JMP callbackasm1(SB)
3079+ MOVV $1532, R12
3080+ JMP callbackasm1(SB)
3081+ MOVV $1533, R12
3082+ JMP callbackasm1(SB)
3083+ MOVV $1534, R12
3084+ JMP callbackasm1(SB)
3085+ MOVV $1535, R12
3086+ JMP callbackasm1(SB)
3087+ MOVV $1536, R12
3088+ JMP callbackasm1(SB)
3089+ MOVV $1537, R12
3090+ JMP callbackasm1(SB)
3091+ MOVV $1538, R12
3092+ JMP callbackasm1(SB)
3093+ MOVV $1539, R12
3094+ JMP callbackasm1(SB)
3095+ MOVV $1540, R12
3096+ JMP callbackasm1(SB)
3097+ MOVV $1541, R12
3098+ JMP callbackasm1(SB)
3099+ MOVV $1542, R12
3100+ JMP callbackasm1(SB)
3101+ MOVV $1543, R12
3102+ JMP callbackasm1(SB)
3103+ MOVV $1544, R12
3104+ JMP callbackasm1(SB)
3105+ MOVV $1545, R12
3106+ JMP callbackasm1(SB)
3107+ MOVV $1546, R12
3108+ JMP callbackasm1(SB)
3109+ MOVV $1547, R12
3110+ JMP callbackasm1(SB)
3111+ MOVV $1548, R12
3112+ JMP callbackasm1(SB)
3113+ MOVV $1549, R12
3114+ JMP callbackasm1(SB)
3115+ MOVV $1550, R12
3116+ JMP callbackasm1(SB)
3117+ MOVV $1551, R12
3118+ JMP callbackasm1(SB)
3119+ MOVV $1552, R12
3120+ JMP callbackasm1(SB)
3121+ MOVV $1553, R12
3122+ JMP callbackasm1(SB)
3123+ MOVV $1554, R12
3124+ JMP callbackasm1(SB)
3125+ MOVV $1555, R12
3126+ JMP callbackasm1(SB)
3127+ MOVV $1556, R12
3128+ JMP callbackasm1(SB)
3129+ MOVV $1557, R12
3130+ JMP callbackasm1(SB)
3131+ MOVV $1558, R12
3132+ JMP callbackasm1(SB)
3133+ MOVV $1559, R12
3134+ JMP callbackasm1(SB)
3135+ MOVV $1560, R12
3136+ JMP callbackasm1(SB)
3137+ MOVV $1561, R12
3138+ JMP callbackasm1(SB)
3139+ MOVV $1562, R12
3140+ JMP callbackasm1(SB)
3141+ MOVV $1563, R12
3142+ JMP callbackasm1(SB)
3143+ MOVV $1564, R12
3144+ JMP callbackasm1(SB)
3145+ MOVV $1565, R12
3146+ JMP callbackasm1(SB)
3147+ MOVV $1566, R12
3148+ JMP callbackasm1(SB)
3149+ MOVV $1567, R12
3150+ JMP callbackasm1(SB)
3151+ MOVV $1568, R12
3152+ JMP callbackasm1(SB)
3153+ MOVV $1569, R12
3154+ JMP callbackasm1(SB)
3155+ MOVV $1570, R12
3156+ JMP callbackasm1(SB)
3157+ MOVV $1571, R12
3158+ JMP callbackasm1(SB)
3159+ MOVV $1572, R12
3160+ JMP callbackasm1(SB)
3161+ MOVV $1573, R12
3162+ JMP callbackasm1(SB)
3163+ MOVV $1574, R12
3164+ JMP callbackasm1(SB)
3165+ MOVV $1575, R12
3166+ JMP callbackasm1(SB)
3167+ MOVV $1576, R12
3168+ JMP callbackasm1(SB)
3169+ MOVV $1577, R12
3170+ JMP callbackasm1(SB)
3171+ MOVV $1578, R12
3172+ JMP callbackasm1(SB)
3173+ MOVV $1579, R12
3174+ JMP callbackasm1(SB)
3175+ MOVV $1580, R12
3176+ JMP callbackasm1(SB)
3177+ MOVV $1581, R12
3178+ JMP callbackasm1(SB)
3179+ MOVV $1582, R12
3180+ JMP callbackasm1(SB)
3181+ MOVV $1583, R12
3182+ JMP callbackasm1(SB)
3183+ MOVV $1584, R12
3184+ JMP callbackasm1(SB)
3185+ MOVV $1585, R12
3186+ JMP callbackasm1(SB)
3187+ MOVV $1586, R12
3188+ JMP callbackasm1(SB)
3189+ MOVV $1587, R12
3190+ JMP callbackasm1(SB)
3191+ MOVV $1588, R12
3192+ JMP callbackasm1(SB)
3193+ MOVV $1589, R12
3194+ JMP callbackasm1(SB)
3195+ MOVV $1590, R12
3196+ JMP callbackasm1(SB)
3197+ MOVV $1591, R12
3198+ JMP callbackasm1(SB)
3199+ MOVV $1592, R12
3200+ JMP callbackasm1(SB)
3201+ MOVV $1593, R12
3202+ JMP callbackasm1(SB)
3203+ MOVV $1594, R12
3204+ JMP callbackasm1(SB)
3205+ MOVV $1595, R12
3206+ JMP callbackasm1(SB)
3207+ MOVV $1596, R12
3208+ JMP callbackasm1(SB)
3209+ MOVV $1597, R12
3210+ JMP callbackasm1(SB)
3211+ MOVV $1598, R12
3212+ JMP callbackasm1(SB)
3213+ MOVV $1599, R12
3214+ JMP callbackasm1(SB)
3215+ MOVV $1600, R12
3216+ JMP callbackasm1(SB)
3217+ MOVV $1601, R12
3218+ JMP callbackasm1(SB)
3219+ MOVV $1602, R12
3220+ JMP callbackasm1(SB)
3221+ MOVV $1603, R12
3222+ JMP callbackasm1(SB)
3223+ MOVV $1604, R12
3224+ JMP callbackasm1(SB)
3225+ MOVV $1605, R12
3226+ JMP callbackasm1(SB)
3227+ MOVV $1606, R12
3228+ JMP callbackasm1(SB)
3229+ MOVV $1607, R12
3230+ JMP callbackasm1(SB)
3231+ MOVV $1608, R12
3232+ JMP callbackasm1(SB)
3233+ MOVV $1609, R12
3234+ JMP callbackasm1(SB)
3235+ MOVV $1610, R12
3236+ JMP callbackasm1(SB)
3237+ MOVV $1611, R12
3238+ JMP callbackasm1(SB)
3239+ MOVV $1612, R12
3240+ JMP callbackasm1(SB)
3241+ MOVV $1613, R12
3242+ JMP callbackasm1(SB)
3243+ MOVV $1614, R12
3244+ JMP callbackasm1(SB)
3245+ MOVV $1615, R12
3246+ JMP callbackasm1(SB)
3247+ MOVV $1616, R12
3248+ JMP callbackasm1(SB)
3249+ MOVV $1617, R12
3250+ JMP callbackasm1(SB)
3251+ MOVV $1618, R12
3252+ JMP callbackasm1(SB)
3253+ MOVV $1619, R12
3254+ JMP callbackasm1(SB)
3255+ MOVV $1620, R12
3256+ JMP callbackasm1(SB)
3257+ MOVV $1621, R12
3258+ JMP callbackasm1(SB)
3259+ MOVV $1622, R12
3260+ JMP callbackasm1(SB)
3261+ MOVV $1623, R12
3262+ JMP callbackasm1(SB)
3263+ MOVV $1624, R12
3264+ JMP callbackasm1(SB)
3265+ MOVV $1625, R12
3266+ JMP callbackasm1(SB)
3267+ MOVV $1626, R12
3268+ JMP callbackasm1(SB)
3269+ MOVV $1627, R12
3270+ JMP callbackasm1(SB)
3271+ MOVV $1628, R12
3272+ JMP callbackasm1(SB)
3273+ MOVV $1629, R12
3274+ JMP callbackasm1(SB)
3275+ MOVV $1630, R12
3276+ JMP callbackasm1(SB)
3277+ MOVV $1631, R12
3278+ JMP callbackasm1(SB)
3279+ MOVV $1632, R12
3280+ JMP callbackasm1(SB)
3281+ MOVV $1633, R12
3282+ JMP callbackasm1(SB)
3283+ MOVV $1634, R12
3284+ JMP callbackasm1(SB)
3285+ MOVV $1635, R12
3286+ JMP callbackasm1(SB)
3287+ MOVV $1636, R12
3288+ JMP callbackasm1(SB)
3289+ MOVV $1637, R12
3290+ JMP callbackasm1(SB)
3291+ MOVV $1638, R12
3292+ JMP callbackasm1(SB)
3293+ MOVV $1639, R12
3294+ JMP callbackasm1(SB)
3295+ MOVV $1640, R12
3296+ JMP callbackasm1(SB)
3297+ MOVV $1641, R12
3298+ JMP callbackasm1(SB)
3299+ MOVV $1642, R12
3300+ JMP callbackasm1(SB)
3301+ MOVV $1643, R12
3302+ JMP callbackasm1(SB)
3303+ MOVV $1644, R12
3304+ JMP callbackasm1(SB)
3305+ MOVV $1645, R12
3306+ JMP callbackasm1(SB)
3307+ MOVV $1646, R12
3308+ JMP callbackasm1(SB)
3309+ MOVV $1647, R12
3310+ JMP callbackasm1(SB)
3311+ MOVV $1648, R12
3312+ JMP callbackasm1(SB)
3313+ MOVV $1649, R12
3314+ JMP callbackasm1(SB)
3315+ MOVV $1650, R12
3316+ JMP callbackasm1(SB)
3317+ MOVV $1651, R12
3318+ JMP callbackasm1(SB)
3319+ MOVV $1652, R12
3320+ JMP callbackasm1(SB)
3321+ MOVV $1653, R12
3322+ JMP callbackasm1(SB)
3323+ MOVV $1654, R12
3324+ JMP callbackasm1(SB)
3325+ MOVV $1655, R12
3326+ JMP callbackasm1(SB)
3327+ MOVV $1656, R12
3328+ JMP callbackasm1(SB)
3329+ MOVV $1657, R12
3330+ JMP callbackasm1(SB)
3331+ MOVV $1658, R12
3332+ JMP callbackasm1(SB)
3333+ MOVV $1659, R12
3334+ JMP callbackasm1(SB)
3335+ MOVV $1660, R12
3336+ JMP callbackasm1(SB)
3337+ MOVV $1661, R12
3338+ JMP callbackasm1(SB)
3339+ MOVV $1662, R12
3340+ JMP callbackasm1(SB)
3341+ MOVV $1663, R12
3342+ JMP callbackasm1(SB)
3343+ MOVV $1664, R12
3344+ JMP callbackasm1(SB)
3345+ MOVV $1665, R12
3346+ JMP callbackasm1(SB)
3347+ MOVV $1666, R12
3348+ JMP callbackasm1(SB)
3349+ MOVV $1667, R12
3350+ JMP callbackasm1(SB)
3351+ MOVV $1668, R12
3352+ JMP callbackasm1(SB)
3353+ MOVV $1669, R12
3354+ JMP callbackasm1(SB)
3355+ MOVV $1670, R12
3356+ JMP callbackasm1(SB)
3357+ MOVV $1671, R12
3358+ JMP callbackasm1(SB)
3359+ MOVV $1672, R12
3360+ JMP callbackasm1(SB)
3361+ MOVV $1673, R12
3362+ JMP callbackasm1(SB)
3363+ MOVV $1674, R12
3364+ JMP callbackasm1(SB)
3365+ MOVV $1675, R12
3366+ JMP callbackasm1(SB)
3367+ MOVV $1676, R12
3368+ JMP callbackasm1(SB)
3369+ MOVV $1677, R12
3370+ JMP callbackasm1(SB)
3371+ MOVV $1678, R12
3372+ JMP callbackasm1(SB)
3373+ MOVV $1679, R12
3374+ JMP callbackasm1(SB)
3375+ MOVV $1680, R12
3376+ JMP callbackasm1(SB)
3377+ MOVV $1681, R12
3378+ JMP callbackasm1(SB)
3379+ MOVV $1682, R12
3380+ JMP callbackasm1(SB)
3381+ MOVV $1683, R12
3382+ JMP callbackasm1(SB)
3383+ MOVV $1684, R12
3384+ JMP callbackasm1(SB)
3385+ MOVV $1685, R12
3386+ JMP callbackasm1(SB)
3387+ MOVV $1686, R12
3388+ JMP callbackasm1(SB)
3389+ MOVV $1687, R12
3390+ JMP callbackasm1(SB)
3391+ MOVV $1688, R12
3392+ JMP callbackasm1(SB)
3393+ MOVV $1689, R12
3394+ JMP callbackasm1(SB)
3395+ MOVV $1690, R12
3396+ JMP callbackasm1(SB)
3397+ MOVV $1691, R12
3398+ JMP callbackasm1(SB)
3399+ MOVV $1692, R12
3400+ JMP callbackasm1(SB)
3401+ MOVV $1693, R12
3402+ JMP callbackasm1(SB)
3403+ MOVV $1694, R12
3404+ JMP callbackasm1(SB)
3405+ MOVV $1695, R12
3406+ JMP callbackasm1(SB)
3407+ MOVV $1696, R12
3408+ JMP callbackasm1(SB)
3409+ MOVV $1697, R12
3410+ JMP callbackasm1(SB)
3411+ MOVV $1698, R12
3412+ JMP callbackasm1(SB)
3413+ MOVV $1699, R12
3414+ JMP callbackasm1(SB)
3415+ MOVV $1700, R12
3416+ JMP callbackasm1(SB)
3417+ MOVV $1701, R12
3418+ JMP callbackasm1(SB)
3419+ MOVV $1702, R12
3420+ JMP callbackasm1(SB)
3421+ MOVV $1703, R12
3422+ JMP callbackasm1(SB)
3423+ MOVV $1704, R12
3424+ JMP callbackasm1(SB)
3425+ MOVV $1705, R12
3426+ JMP callbackasm1(SB)
3427+ MOVV $1706, R12
3428+ JMP callbackasm1(SB)
3429+ MOVV $1707, R12
3430+ JMP callbackasm1(SB)
3431+ MOVV $1708, R12
3432+ JMP callbackasm1(SB)
3433+ MOVV $1709, R12
3434+ JMP callbackasm1(SB)
3435+ MOVV $1710, R12
3436+ JMP callbackasm1(SB)
3437+ MOVV $1711, R12
3438+ JMP callbackasm1(SB)
3439+ MOVV $1712, R12
3440+ JMP callbackasm1(SB)
3441+ MOVV $1713, R12
3442+ JMP callbackasm1(SB)
3443+ MOVV $1714, R12
3444+ JMP callbackasm1(SB)
3445+ MOVV $1715, R12
3446+ JMP callbackasm1(SB)
3447+ MOVV $1716, R12
3448+ JMP callbackasm1(SB)
3449+ MOVV $1717, R12
3450+ JMP callbackasm1(SB)
3451+ MOVV $1718, R12
3452+ JMP callbackasm1(SB)
3453+ MOVV $1719, R12
3454+ JMP callbackasm1(SB)
3455+ MOVV $1720, R12
3456+ JMP callbackasm1(SB)
3457+ MOVV $1721, R12
3458+ JMP callbackasm1(SB)
3459+ MOVV $1722, R12
3460+ JMP callbackasm1(SB)
3461+ MOVV $1723, R12
3462+ JMP callbackasm1(SB)
3463+ MOVV $1724, R12
3464+ JMP callbackasm1(SB)
3465+ MOVV $1725, R12
3466+ JMP callbackasm1(SB)
3467+ MOVV $1726, R12
3468+ JMP callbackasm1(SB)
3469+ MOVV $1727, R12
3470+ JMP callbackasm1(SB)
3471+ MOVV $1728, R12
3472+ JMP callbackasm1(SB)
3473+ MOVV $1729, R12
3474+ JMP callbackasm1(SB)
3475+ MOVV $1730, R12
3476+ JMP callbackasm1(SB)
3477+ MOVV $1731, R12
3478+ JMP callbackasm1(SB)
3479+ MOVV $1732, R12
3480+ JMP callbackasm1(SB)
3481+ MOVV $1733, R12
3482+ JMP callbackasm1(SB)
3483+ MOVV $1734, R12
3484+ JMP callbackasm1(SB)
3485+ MOVV $1735, R12
3486+ JMP callbackasm1(SB)
3487+ MOVV $1736, R12
3488+ JMP callbackasm1(SB)
3489+ MOVV $1737, R12
3490+ JMP callbackasm1(SB)
3491+ MOVV $1738, R12
3492+ JMP callbackasm1(SB)
3493+ MOVV $1739, R12
3494+ JMP callbackasm1(SB)
3495+ MOVV $1740, R12
3496+ JMP callbackasm1(SB)
3497+ MOVV $1741, R12
3498+ JMP callbackasm1(SB)
3499+ MOVV $1742, R12
3500+ JMP callbackasm1(SB)
3501+ MOVV $1743, R12
3502+ JMP callbackasm1(SB)
3503+ MOVV $1744, R12
3504+ JMP callbackasm1(SB)
3505+ MOVV $1745, R12
3506+ JMP callbackasm1(SB)
3507+ MOVV $1746, R12
3508+ JMP callbackasm1(SB)
3509+ MOVV $1747, R12
3510+ JMP callbackasm1(SB)
3511+ MOVV $1748, R12
3512+ JMP callbackasm1(SB)
3513+ MOVV $1749, R12
3514+ JMP callbackasm1(SB)
3515+ MOVV $1750, R12
3516+ JMP callbackasm1(SB)
3517+ MOVV $1751, R12
3518+ JMP callbackasm1(SB)
3519+ MOVV $1752, R12
3520+ JMP callbackasm1(SB)
3521+ MOVV $1753, R12
3522+ JMP callbackasm1(SB)
3523+ MOVV $1754, R12
3524+ JMP callbackasm1(SB)
3525+ MOVV $1755, R12
3526+ JMP callbackasm1(SB)
3527+ MOVV $1756, R12
3528+ JMP callbackasm1(SB)
3529+ MOVV $1757, R12
3530+ JMP callbackasm1(SB)
3531+ MOVV $1758, R12
3532+ JMP callbackasm1(SB)
3533+ MOVV $1759, R12
3534+ JMP callbackasm1(SB)
3535+ MOVV $1760, R12
3536+ JMP callbackasm1(SB)
3537+ MOVV $1761, R12
3538+ JMP callbackasm1(SB)
3539+ MOVV $1762, R12
3540+ JMP callbackasm1(SB)
3541+ MOVV $1763, R12
3542+ JMP callbackasm1(SB)
3543+ MOVV $1764, R12
3544+ JMP callbackasm1(SB)
3545+ MOVV $1765, R12
3546+ JMP callbackasm1(SB)
3547+ MOVV $1766, R12
3548+ JMP callbackasm1(SB)
3549+ MOVV $1767, R12
3550+ JMP callbackasm1(SB)
3551+ MOVV $1768, R12
3552+ JMP callbackasm1(SB)
3553+ MOVV $1769, R12
3554+ JMP callbackasm1(SB)
3555+ MOVV $1770, R12
3556+ JMP callbackasm1(SB)
3557+ MOVV $1771, R12
3558+ JMP callbackasm1(SB)
3559+ MOVV $1772, R12
3560+ JMP callbackasm1(SB)
3561+ MOVV $1773, R12
3562+ JMP callbackasm1(SB)
3563+ MOVV $1774, R12
3564+ JMP callbackasm1(SB)
3565+ MOVV $1775, R12
3566+ JMP callbackasm1(SB)
3567+ MOVV $1776, R12
3568+ JMP callbackasm1(SB)
3569+ MOVV $1777, R12
3570+ JMP callbackasm1(SB)
3571+ MOVV $1778, R12
3572+ JMP callbackasm1(SB)
3573+ MOVV $1779, R12
3574+ JMP callbackasm1(SB)
3575+ MOVV $1780, R12
3576+ JMP callbackasm1(SB)
3577+ MOVV $1781, R12
3578+ JMP callbackasm1(SB)
3579+ MOVV $1782, R12
3580+ JMP callbackasm1(SB)
3581+ MOVV $1783, R12
3582+ JMP callbackasm1(SB)
3583+ MOVV $1784, R12
3584+ JMP callbackasm1(SB)
3585+ MOVV $1785, R12
3586+ JMP callbackasm1(SB)
3587+ MOVV $1786, R12
3588+ JMP callbackasm1(SB)
3589+ MOVV $1787, R12
3590+ JMP callbackasm1(SB)
3591+ MOVV $1788, R12
3592+ JMP callbackasm1(SB)
3593+ MOVV $1789, R12
3594+ JMP callbackasm1(SB)
3595+ MOVV $1790, R12
3596+ JMP callbackasm1(SB)
3597+ MOVV $1791, R12
3598+ JMP callbackasm1(SB)
3599+ MOVV $1792, R12
3600+ JMP callbackasm1(SB)
3601+ MOVV $1793, R12
3602+ JMP callbackasm1(SB)
3603+ MOVV $1794, R12
3604+ JMP callbackasm1(SB)
3605+ MOVV $1795, R12
3606+ JMP callbackasm1(SB)
3607+ MOVV $1796, R12
3608+ JMP callbackasm1(SB)
3609+ MOVV $1797, R12
3610+ JMP callbackasm1(SB)
3611+ MOVV $1798, R12
3612+ JMP callbackasm1(SB)
3613+ MOVV $1799, R12
3614+ JMP callbackasm1(SB)
3615+ MOVV $1800, R12
3616+ JMP callbackasm1(SB)
3617+ MOVV $1801, R12
3618+ JMP callbackasm1(SB)
3619+ MOVV $1802, R12
3620+ JMP callbackasm1(SB)
3621+ MOVV $1803, R12
3622+ JMP callbackasm1(SB)
3623+ MOVV $1804, R12
3624+ JMP callbackasm1(SB)
3625+ MOVV $1805, R12
3626+ JMP callbackasm1(SB)
3627+ MOVV $1806, R12
3628+ JMP callbackasm1(SB)
3629+ MOVV $1807, R12
3630+ JMP callbackasm1(SB)
3631+ MOVV $1808, R12
3632+ JMP callbackasm1(SB)
3633+ MOVV $1809, R12
3634+ JMP callbackasm1(SB)
3635+ MOVV $1810, R12
3636+ JMP callbackasm1(SB)
3637+ MOVV $1811, R12
3638+ JMP callbackasm1(SB)
3639+ MOVV $1812, R12
3640+ JMP callbackasm1(SB)
3641+ MOVV $1813, R12
3642+ JMP callbackasm1(SB)
3643+ MOVV $1814, R12
3644+ JMP callbackasm1(SB)
3645+ MOVV $1815, R12
3646+ JMP callbackasm1(SB)
3647+ MOVV $1816, R12
3648+ JMP callbackasm1(SB)
3649+ MOVV $1817, R12
3650+ JMP callbackasm1(SB)
3651+ MOVV $1818, R12
3652+ JMP callbackasm1(SB)
3653+ MOVV $1819, R12
3654+ JMP callbackasm1(SB)
3655+ MOVV $1820, R12
3656+ JMP callbackasm1(SB)
3657+ MOVV $1821, R12
3658+ JMP callbackasm1(SB)
3659+ MOVV $1822, R12
3660+ JMP callbackasm1(SB)
3661+ MOVV $1823, R12
3662+ JMP callbackasm1(SB)
3663+ MOVV $1824, R12
3664+ JMP callbackasm1(SB)
3665+ MOVV $1825, R12
3666+ JMP callbackasm1(SB)
3667+ MOVV $1826, R12
3668+ JMP callbackasm1(SB)
3669+ MOVV $1827, R12
3670+ JMP callbackasm1(SB)
3671+ MOVV $1828, R12
3672+ JMP callbackasm1(SB)
3673+ MOVV $1829, R12
3674+ JMP callbackasm1(SB)
3675+ MOVV $1830, R12
3676+ JMP callbackasm1(SB)
3677+ MOVV $1831, R12
3678+ JMP callbackasm1(SB)
3679+ MOVV $1832, R12
3680+ JMP callbackasm1(SB)
3681+ MOVV $1833, R12
3682+ JMP callbackasm1(SB)
3683+ MOVV $1834, R12
3684+ JMP callbackasm1(SB)
3685+ MOVV $1835, R12
3686+ JMP callbackasm1(SB)
3687+ MOVV $1836, R12
3688+ JMP callbackasm1(SB)
3689+ MOVV $1837, R12
3690+ JMP callbackasm1(SB)
3691+ MOVV $1838, R12
3692+ JMP callbackasm1(SB)
3693+ MOVV $1839, R12
3694+ JMP callbackasm1(SB)
3695+ MOVV $1840, R12
3696+ JMP callbackasm1(SB)
3697+ MOVV $1841, R12
3698+ JMP callbackasm1(SB)
3699+ MOVV $1842, R12
3700+ JMP callbackasm1(SB)
3701+ MOVV $1843, R12
3702+ JMP callbackasm1(SB)
3703+ MOVV $1844, R12
3704+ JMP callbackasm1(SB)
3705+ MOVV $1845, R12
3706+ JMP callbackasm1(SB)
3707+ MOVV $1846, R12
3708+ JMP callbackasm1(SB)
3709+ MOVV $1847, R12
3710+ JMP callbackasm1(SB)
3711+ MOVV $1848, R12
3712+ JMP callbackasm1(SB)
3713+ MOVV $1849, R12
3714+ JMP callbackasm1(SB)
3715+ MOVV $1850, R12
3716+ JMP callbackasm1(SB)
3717+ MOVV $1851, R12
3718+ JMP callbackasm1(SB)
3719+ MOVV $1852, R12
3720+ JMP callbackasm1(SB)
3721+ MOVV $1853, R12
3722+ JMP callbackasm1(SB)
3723+ MOVV $1854, R12
3724+ JMP callbackasm1(SB)
3725+ MOVV $1855, R12
3726+ JMP callbackasm1(SB)
3727+ MOVV $1856, R12
3728+ JMP callbackasm1(SB)
3729+ MOVV $1857, R12
3730+ JMP callbackasm1(SB)
3731+ MOVV $1858, R12
3732+ JMP callbackasm1(SB)
3733+ MOVV $1859, R12
3734+ JMP callbackasm1(SB)
3735+ MOVV $1860, R12
3736+ JMP callbackasm1(SB)
3737+ MOVV $1861, R12
3738+ JMP callbackasm1(SB)
3739+ MOVV $1862, R12
3740+ JMP callbackasm1(SB)
3741+ MOVV $1863, R12
3742+ JMP callbackasm1(SB)
3743+ MOVV $1864, R12
3744+ JMP callbackasm1(SB)
3745+ MOVV $1865, R12
3746+ JMP callbackasm1(SB)
3747+ MOVV $1866, R12
3748+ JMP callbackasm1(SB)
3749+ MOVV $1867, R12
3750+ JMP callbackasm1(SB)
3751+ MOVV $1868, R12
3752+ JMP callbackasm1(SB)
3753+ MOVV $1869, R12
3754+ JMP callbackasm1(SB)
3755+ MOVV $1870, R12
3756+ JMP callbackasm1(SB)
3757+ MOVV $1871, R12
3758+ JMP callbackasm1(SB)
3759+ MOVV $1872, R12
3760+ JMP callbackasm1(SB)
3761+ MOVV $1873, R12
3762+ JMP callbackasm1(SB)
3763+ MOVV $1874, R12
3764+ JMP callbackasm1(SB)
3765+ MOVV $1875, R12
3766+ JMP callbackasm1(SB)
3767+ MOVV $1876, R12
3768+ JMP callbackasm1(SB)
3769+ MOVV $1877, R12
3770+ JMP callbackasm1(SB)
3771+ MOVV $1878, R12
3772+ JMP callbackasm1(SB)
3773+ MOVV $1879, R12
3774+ JMP callbackasm1(SB)
3775+ MOVV $1880, R12
3776+ JMP callbackasm1(SB)
3777+ MOVV $1881, R12
3778+ JMP callbackasm1(SB)
3779+ MOVV $1882, R12
3780+ JMP callbackasm1(SB)
3781+ MOVV $1883, R12
3782+ JMP callbackasm1(SB)
3783+ MOVV $1884, R12
3784+ JMP callbackasm1(SB)
3785+ MOVV $1885, R12
3786+ JMP callbackasm1(SB)
3787+ MOVV $1886, R12
3788+ JMP callbackasm1(SB)
3789+ MOVV $1887, R12
3790+ JMP callbackasm1(SB)
3791+ MOVV $1888, R12
3792+ JMP callbackasm1(SB)
3793+ MOVV $1889, R12
3794+ JMP callbackasm1(SB)
3795+ MOVV $1890, R12
3796+ JMP callbackasm1(SB)
3797+ MOVV $1891, R12
3798+ JMP callbackasm1(SB)
3799+ MOVV $1892, R12
3800+ JMP callbackasm1(SB)
3801+ MOVV $1893, R12
3802+ JMP callbackasm1(SB)
3803+ MOVV $1894, R12
3804+ JMP callbackasm1(SB)
3805+ MOVV $1895, R12
3806+ JMP callbackasm1(SB)
3807+ MOVV $1896, R12
3808+ JMP callbackasm1(SB)
3809+ MOVV $1897, R12
3810+ JMP callbackasm1(SB)
3811+ MOVV $1898, R12
3812+ JMP callbackasm1(SB)
3813+ MOVV $1899, R12
3814+ JMP callbackasm1(SB)
3815+ MOVV $1900, R12
3816+ JMP callbackasm1(SB)
3817+ MOVV $1901, R12
3818+ JMP callbackasm1(SB)
3819+ MOVV $1902, R12
3820+ JMP callbackasm1(SB)
3821+ MOVV $1903, R12
3822+ JMP callbackasm1(SB)
3823+ MOVV $1904, R12
3824+ JMP callbackasm1(SB)
3825+ MOVV $1905, R12
3826+ JMP callbackasm1(SB)
3827+ MOVV $1906, R12
3828+ JMP callbackasm1(SB)
3829+ MOVV $1907, R12
3830+ JMP callbackasm1(SB)
3831+ MOVV $1908, R12
3832+ JMP callbackasm1(SB)
3833+ MOVV $1909, R12
3834+ JMP callbackasm1(SB)
3835+ MOVV $1910, R12
3836+ JMP callbackasm1(SB)
3837+ MOVV $1911, R12
3838+ JMP callbackasm1(SB)
3839+ MOVV $1912, R12
3840+ JMP callbackasm1(SB)
3841+ MOVV $1913, R12
3842+ JMP callbackasm1(SB)
3843+ MOVV $1914, R12
3844+ JMP callbackasm1(SB)
3845+ MOVV $1915, R12
3846+ JMP callbackasm1(SB)
3847+ MOVV $1916, R12
3848+ JMP callbackasm1(SB)
3849+ MOVV $1917, R12
3850+ JMP callbackasm1(SB)
3851+ MOVV $1918, R12
3852+ JMP callbackasm1(SB)
3853+ MOVV $1919, R12
3854+ JMP callbackasm1(SB)
3855+ MOVV $1920, R12
3856+ JMP callbackasm1(SB)
3857+ MOVV $1921, R12
3858+ JMP callbackasm1(SB)
3859+ MOVV $1922, R12
3860+ JMP callbackasm1(SB)
3861+ MOVV $1923, R12
3862+ JMP callbackasm1(SB)
3863+ MOVV $1924, R12
3864+ JMP callbackasm1(SB)
3865+ MOVV $1925, R12
3866+ JMP callbackasm1(SB)
3867+ MOVV $1926, R12
3868+ JMP callbackasm1(SB)
3869+ MOVV $1927, R12
3870+ JMP callbackasm1(SB)
3871+ MOVV $1928, R12
3872+ JMP callbackasm1(SB)
3873+ MOVV $1929, R12
3874+ JMP callbackasm1(SB)
3875+ MOVV $1930, R12
3876+ JMP callbackasm1(SB)
3877+ MOVV $1931, R12
3878+ JMP callbackasm1(SB)
3879+ MOVV $1932, R12
3880+ JMP callbackasm1(SB)
3881+ MOVV $1933, R12
3882+ JMP callbackasm1(SB)
3883+ MOVV $1934, R12
3884+ JMP callbackasm1(SB)
3885+ MOVV $1935, R12
3886+ JMP callbackasm1(SB)
3887+ MOVV $1936, R12
3888+ JMP callbackasm1(SB)
3889+ MOVV $1937, R12
3890+ JMP callbackasm1(SB)
3891+ MOVV $1938, R12
3892+ JMP callbackasm1(SB)
3893+ MOVV $1939, R12
3894+ JMP callbackasm1(SB)
3895+ MOVV $1940, R12
3896+ JMP callbackasm1(SB)
3897+ MOVV $1941, R12
3898+ JMP callbackasm1(SB)
3899+ MOVV $1942, R12
3900+ JMP callbackasm1(SB)
3901+ MOVV $1943, R12
3902+ JMP callbackasm1(SB)
3903+ MOVV $1944, R12
3904+ JMP callbackasm1(SB)
3905+ MOVV $1945, R12
3906+ JMP callbackasm1(SB)
3907+ MOVV $1946, R12
3908+ JMP callbackasm1(SB)
3909+ MOVV $1947, R12
3910+ JMP callbackasm1(SB)
3911+ MOVV $1948, R12
3912+ JMP callbackasm1(SB)
3913+ MOVV $1949, R12
3914+ JMP callbackasm1(SB)
3915+ MOVV $1950, R12
3916+ JMP callbackasm1(SB)
3917+ MOVV $1951, R12
3918+ JMP callbackasm1(SB)
3919+ MOVV $1952, R12
3920+ JMP callbackasm1(SB)
3921+ MOVV $1953, R12
3922+ JMP callbackasm1(SB)
3923+ MOVV $1954, R12
3924+ JMP callbackasm1(SB)
3925+ MOVV $1955, R12
3926+ JMP callbackasm1(SB)
3927+ MOVV $1956, R12
3928+ JMP callbackasm1(SB)
3929+ MOVV $1957, R12
3930+ JMP callbackasm1(SB)
3931+ MOVV $1958, R12
3932+ JMP callbackasm1(SB)
3933+ MOVV $1959, R12
3934+ JMP callbackasm1(SB)
3935+ MOVV $1960, R12
3936+ JMP callbackasm1(SB)
3937+ MOVV $1961, R12
3938+ JMP callbackasm1(SB)
3939+ MOVV $1962, R12
3940+ JMP callbackasm1(SB)
3941+ MOVV $1963, R12
3942+ JMP callbackasm1(SB)
3943+ MOVV $1964, R12
3944+ JMP callbackasm1(SB)
3945+ MOVV $1965, R12
3946+ JMP callbackasm1(SB)
3947+ MOVV $1966, R12
3948+ JMP callbackasm1(SB)
3949+ MOVV $1967, R12
3950+ JMP callbackasm1(SB)
3951+ MOVV $1968, R12
3952+ JMP callbackasm1(SB)
3953+ MOVV $1969, R12
3954+ JMP callbackasm1(SB)
3955+ MOVV $1970, R12
3956+ JMP callbackasm1(SB)
3957+ MOVV $1971, R12
3958+ JMP callbackasm1(SB)
3959+ MOVV $1972, R12
3960+ JMP callbackasm1(SB)
3961+ MOVV $1973, R12
3962+ JMP callbackasm1(SB)
3963+ MOVV $1974, R12
3964+ JMP callbackasm1(SB)
3965+ MOVV $1975, R12
3966+ JMP callbackasm1(SB)
3967+ MOVV $1976, R12
3968+ JMP callbackasm1(SB)
3969+ MOVV $1977, R12
3970+ JMP callbackasm1(SB)
3971+ MOVV $1978, R12
3972+ JMP callbackasm1(SB)
3973+ MOVV $1979, R12
3974+ JMP callbackasm1(SB)
3975+ MOVV $1980, R12
3976+ JMP callbackasm1(SB)
3977+ MOVV $1981, R12
3978+ JMP callbackasm1(SB)
3979+ MOVV $1982, R12
3980+ JMP callbackasm1(SB)
3981+ MOVV $1983, R12
3982+ JMP callbackasm1(SB)
3983+ MOVV $1984, R12
3984+ JMP callbackasm1(SB)
3985+ MOVV $1985, R12
3986+ JMP callbackasm1(SB)
3987+ MOVV $1986, R12
3988+ JMP callbackasm1(SB)
3989+ MOVV $1987, R12
3990+ JMP callbackasm1(SB)
3991+ MOVV $1988, R12
3992+ JMP callbackasm1(SB)
3993+ MOVV $1989, R12
3994+ JMP callbackasm1(SB)
3995+ MOVV $1990, R12
3996+ JMP callbackasm1(SB)
3997+ MOVV $1991, R12
3998+ JMP callbackasm1(SB)
3999+ MOVV $1992, R12
4000+ JMP callbackasm1(SB)
4001+ MOVV $1993, R12
4002+ JMP callbackasm1(SB)
4003+ MOVV $1994, R12
4004+ JMP callbackasm1(SB)
4005+ MOVV $1995, R12
4006+ JMP callbackasm1(SB)
4007+ MOVV $1996, R12
4008+ JMP callbackasm1(SB)
4009+ MOVV $1997, R12
4010+ JMP callbackasm1(SB)
4011+ MOVV $1998, R12
4012+ JMP callbackasm1(SB)
4013+ MOVV $1999, R12
4014+ JMP callbackasm1(SB)

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 102

↑↓ moveenter openesc close