detached 93970fe

purego: add support for linux/arm32 (#391)

This PR adds the necessary code logic to support linux/arm32 with both CGO
enabled/disabled.

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