detached 585a4c5

purego: add support for s390x (#413)

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