mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-05-03 05:33:30 -04:00
Bumps [github.com/testcontainers/testcontainers-go](https://github.com/testcontainers/testcontainers-go) from 0.40.0 to 0.41.0. - [Release notes](https://github.com/testcontainers/testcontainers-go/releases) - [Commits](https://github.com/testcontainers/testcontainers-go/compare/v0.40.0...v0.41.0) --- updated-dependencies: - dependency-name: github.com/testcontainers/testcontainers-go dependency-version: 0.41.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
90 lines
1.7 KiB
ArmAsm
90 lines
1.7 KiB
ArmAsm
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-FileCopyrightText: 2026 The Ebitengine Authors
|
|
|
|
//go:build linux
|
|
|
|
#include "textflag.h"
|
|
#include "go_asm.h"
|
|
#include "funcdata.h"
|
|
|
|
TEXT callbackasm1(SB), NOSPLIT|NOFRAME, $0
|
|
NO_LOCAL_POINTERS
|
|
|
|
// Allocate stack frame: 48 + 16 + 64 + 16 = 144 bytes
|
|
SUB $144, R13
|
|
|
|
// Save callee-saved registers at SP+0
|
|
MOVW R4, 0(R13)
|
|
MOVW R5, 4(R13)
|
|
MOVW R6, 8(R13)
|
|
MOVW R7, 12(R13)
|
|
MOVW R8, 16(R13)
|
|
MOVW R9, 20(R13)
|
|
MOVW g, 24(R13)
|
|
MOVW R11, 28(R13)
|
|
MOVW R14, 32(R13)
|
|
|
|
// Save callback index (passed in R12) at SP+36
|
|
MOVW R12, 36(R13)
|
|
|
|
// Save integer arguments R0-R3 at SP+128 (frame[16..19])
|
|
MOVW R0, 128(R13)
|
|
MOVW R1, 132(R13)
|
|
MOVW R2, 136(R13)
|
|
MOVW R3, 140(R13)
|
|
|
|
// Save floating point registers F0-F7 at SP+64 (frame[0..15])
|
|
// Note: We always save these since we target hard-float ABI.
|
|
MOVD F0, 64(R13)
|
|
MOVD F1, 72(R13)
|
|
MOVD F2, 80(R13)
|
|
MOVD F3, 88(R13)
|
|
MOVD F4, 96(R13)
|
|
MOVD F5, 104(R13)
|
|
MOVD F6, 112(R13)
|
|
MOVD F7, 120(R13)
|
|
|
|
// Set up callbackArgs at SP+48
|
|
MOVW 36(R13), R4
|
|
MOVW R4, 48(R13)
|
|
ADD $64, R13, R4
|
|
MOVW R4, 52(R13)
|
|
MOVW $0, R4
|
|
MOVW R4, 56(R13)
|
|
|
|
// Call crosscall2(fn, frame, 0, ctxt)
|
|
MOVW ·callbackWrap_call(SB), R0
|
|
MOVW (R0), R0
|
|
ADD $48, R13, R1
|
|
MOVW $0, R2
|
|
MOVW $0, R3
|
|
|
|
BL crosscall2(SB)
|
|
|
|
// Get result
|
|
MOVW 56(R13), R0
|
|
|
|
// Restore float registers
|
|
MOVD 64(R13), F0
|
|
MOVD 72(R13), F1
|
|
MOVD 80(R13), F2
|
|
MOVD 88(R13), F3
|
|
MOVD 96(R13), F4
|
|
MOVD 104(R13), F5
|
|
MOVD 112(R13), F6
|
|
MOVD 120(R13), F7
|
|
|
|
// Restore callee-saved registers
|
|
MOVW 0(R13), R4
|
|
MOVW 4(R13), R5
|
|
MOVW 8(R13), R6
|
|
MOVW 12(R13), R7
|
|
MOVW 16(R13), R8
|
|
MOVW 20(R13), R9
|
|
MOVW 24(R13), g
|
|
MOVW 28(R13), R11
|
|
MOVW 32(R13), R14
|
|
|
|
ADD $144, R13
|
|
RET
|