/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
#define lr x30
#define ip0 x16
.section .note.GNU-stack,"",@progbits
.data
.globl _libXrandr_so_tramp_table
.hidden _libXrandr_so_tramp_table
.align 8
_libXrandr_so_tramp_table:
.zero 568
.text
.globl _libXrandr_so_tramp_resolve
.hidden _libXrandr_so_tramp_resolve
.globl _libXrandr_so_save_regs_and_resolve
.hidden _libXrandr_so_save_regs_and_resolve
.type _libXrandr_so_save_regs_and_resolve, %function
_libXrandr_so_save_regs_and_resolve:
.cfi_startproc
// Slow path which calls dlsym, taken only on first call.
// Registers are saved according to "Procedure Call Standard for the ArmĀ® 64-bit Architecture".
// For DWARF directives, read https://www.imperialviolet.org/2017/01/18/cfi.html.
// Stack is aligned at 16 bytes
#define PUSH_PAIR(reg1, reg2) stp reg1, reg2, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset reg1, 0; .cfi_rel_offset reg2, 8
#define POP_PAIR(reg1, reg2) ldp reg1, reg2, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore reg2; .cfi_restore reg1
#define PUSH_WIDE_PAIR(reg1, reg2) stp reg1, reg2, [sp, #-32]!; .cfi_adjust_cfa_offset 32; .cfi_rel_offset reg1, 0; .cfi_rel_offset reg2, 16
#define POP_WIDE_PAIR(reg1, reg2) ldp reg1, reg2, [sp], #32; .cfi_adjust_cfa_offset -32; .cfi_restore reg2; .cfi_restore reg1
// Save only arguments (and lr)
PUSH_PAIR(x0, x1)
PUSH_PAIR(x2, x3)
PUSH_PAIR(x4, x5)
PUSH_PAIR(x6, x7)
PUSH_PAIR(x8, lr)
ldr x0, [sp, #80] // 16*5
PUSH_WIDE_PAIR(q0, q1)
PUSH_WIDE_PAIR(q2, q3)
PUSH_WIDE_PAIR(q4, q5)
PUSH_WIDE_PAIR(q6, q7)
// Stack is aligned at 16 bytes
bl _libXrandr_so_tramp_resolve
mov ip0, x0
// TODO: pop pc?
POP_WIDE_PAIR(q6, q7)
POP_WIDE_PAIR(q4, q5)
POP_WIDE_PAIR(q2, q3)
POP_WIDE_PAIR(q0, q1)
POP_PAIR(x8, lr)
POP_PAIR(x6, x7)
POP_PAIR(x4, x5)
POP_PAIR(x2, x3)
POP_PAIR(x0, x1)
br lr
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRAddOutputMode
.p2align 4
.type XRRAddOutputMode, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRAddOutputMode
#endif
XRRAddOutputMode:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+0
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+0]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 0 & 0xffff
#if 0 > 0xffff
movk ip0, 0 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRAllocGamma
.p2align 4
.type XRRAllocGamma, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRAllocGamma
#endif
XRRAllocGamma:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+8
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+8]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 1 & 0xffff
#if 1 > 0xffff
movk ip0, 1 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRAllocModeInfo
.p2align 4
.type XRRAllocModeInfo, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRAllocModeInfo
#endif
XRRAllocModeInfo:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+16
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+16]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 2 & 0xffff
#if 2 > 0xffff
movk ip0, 2 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRAllocateMonitor
.p2align 4
.type XRRAllocateMonitor, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRAllocateMonitor
#endif
XRRAllocateMonitor:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+24
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+24]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 3 & 0xffff
#if 3 > 0xffff
movk ip0, 3 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRChangeOutputProperty
.p2align 4
.type XRRChangeOutputProperty, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRChangeOutputProperty
#endif
XRRChangeOutputProperty:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+32
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+32]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 4 & 0xffff
#if 4 > 0xffff
movk ip0, 4 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRChangeProviderProperty
.p2align 4
.type XRRChangeProviderProperty, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRChangeProviderProperty
#endif
XRRChangeProviderProperty:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+40
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+40]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 5 & 0xffff
#if 5 > 0xffff
movk ip0, 5 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRConfigCurrentConfiguration
.p2align 4
.type XRRConfigCurrentConfiguration, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRConfigCurrentConfiguration
#endif
XRRConfigCurrentConfiguration:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+48
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+48]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 6 & 0xffff
#if 6 > 0xffff
movk ip0, 6 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRConfigCurrentRate
.p2align 4
.type XRRConfigCurrentRate, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRConfigCurrentRate
#endif
XRRConfigCurrentRate:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+56
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+56]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 7 & 0xffff
#if 7 > 0xffff
movk ip0, 7 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRConfigRates
.p2align 4
.type XRRConfigRates, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRConfigRates
#endif
XRRConfigRates:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+64
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+64]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 8 & 0xffff
#if 8 > 0xffff
movk ip0, 8 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRConfigRotations
.p2align 4
.type XRRConfigRotations, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRConfigRotations
#endif
XRRConfigRotations:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+72
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+72]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 9 & 0xffff
#if 9 > 0xffff
movk ip0, 9 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRConfigSizes
.p2align 4
.type XRRConfigSizes, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRConfigSizes
#endif
XRRConfigSizes:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+80
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+80]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 10 & 0xffff
#if 10 > 0xffff
movk ip0, 10 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRConfigTimes
.p2align 4
.type XRRConfigTimes, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRConfigTimes
#endif
XRRConfigTimes:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+88
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+88]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 11 & 0xffff
#if 11 > 0xffff
movk ip0, 11 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRConfigureOutputProperty
.p2align 4
.type XRRConfigureOutputProperty, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRConfigureOutputProperty
#endif
XRRConfigureOutputProperty:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+96
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+96]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 12 & 0xffff
#if 12 > 0xffff
movk ip0, 12 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRConfigureProviderProperty
.p2align 4
.type XRRConfigureProviderProperty, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRConfigureProviderProperty
#endif
XRRConfigureProviderProperty:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+104
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+104]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 13 & 0xffff
#if 13 > 0xffff
movk ip0, 13 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRCreateMode
.p2align 4
.type XRRCreateMode, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRCreateMode
#endif
XRRCreateMode:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+112
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+112]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 14 & 0xffff
#if 14 > 0xffff
movk ip0, 14 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRDeleteMonitor
.p2align 4
.type XRRDeleteMonitor, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRDeleteMonitor
#endif
XRRDeleteMonitor:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+120
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+120]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 15 & 0xffff
#if 15 > 0xffff
movk ip0, 15 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRDeleteOutputMode
.p2align 4
.type XRRDeleteOutputMode, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRDeleteOutputMode
#endif
XRRDeleteOutputMode:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+128
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+128]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 16 & 0xffff
#if 16 > 0xffff
movk ip0, 16 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRDeleteOutputProperty
.p2align 4
.type XRRDeleteOutputProperty, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRDeleteOutputProperty
#endif
XRRDeleteOutputProperty:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+136
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+136]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 17 & 0xffff
#if 17 > 0xffff
movk ip0, 17 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRDeleteProviderProperty
.p2align 4
.type XRRDeleteProviderProperty, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRDeleteProviderProperty
#endif
XRRDeleteProviderProperty:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+144
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+144]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 18 & 0xffff
#if 18 > 0xffff
movk ip0, 18 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRDestroyMode
.p2align 4
.type XRRDestroyMode, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRDestroyMode
#endif
XRRDestroyMode:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+152
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+152]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 19 & 0xffff
#if 19 > 0xffff
movk ip0, 19 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRFreeCrtcInfo
.p2align 4
.type XRRFreeCrtcInfo, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRFreeCrtcInfo
#endif
XRRFreeCrtcInfo:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+160
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+160]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 20 & 0xffff
#if 20 > 0xffff
movk ip0, 20 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRFreeGamma
.p2align 4
.type XRRFreeGamma, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRFreeGamma
#endif
XRRFreeGamma:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+168
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+168]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 21 & 0xffff
#if 21 > 0xffff
movk ip0, 21 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRFreeModeInfo
.p2align 4
.type XRRFreeModeInfo, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRFreeModeInfo
#endif
XRRFreeModeInfo:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+176
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+176]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 22 & 0xffff
#if 22 > 0xffff
movk ip0, 22 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRFreeMonitors
.p2align 4
.type XRRFreeMonitors, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRFreeMonitors
#endif
XRRFreeMonitors:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+184
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+184]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 23 & 0xffff
#if 23 > 0xffff
movk ip0, 23 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRFreeOutputInfo
.p2align 4
.type XRRFreeOutputInfo, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRFreeOutputInfo
#endif
XRRFreeOutputInfo:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+192
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+192]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 24 & 0xffff
#if 24 > 0xffff
movk ip0, 24 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRFreePanning
.p2align 4
.type XRRFreePanning, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRFreePanning
#endif
XRRFreePanning:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+200
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+200]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 25 & 0xffff
#if 25 > 0xffff
movk ip0, 25 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRFreeProviderInfo
.p2align 4
.type XRRFreeProviderInfo, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRFreeProviderInfo
#endif
XRRFreeProviderInfo:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+208
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+208]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 26 & 0xffff
#if 26 > 0xffff
movk ip0, 26 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRFreeProviderResources
.p2align 4
.type XRRFreeProviderResources, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRFreeProviderResources
#endif
XRRFreeProviderResources:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+216
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+216]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 27 & 0xffff
#if 27 > 0xffff
movk ip0, 27 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRFreeScreenConfigInfo
.p2align 4
.type XRRFreeScreenConfigInfo, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRFreeScreenConfigInfo
#endif
XRRFreeScreenConfigInfo:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+224
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+224]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 28 & 0xffff
#if 28 > 0xffff
movk ip0, 28 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRFreeScreenResources
.p2align 4
.type XRRFreeScreenResources, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRFreeScreenResources
#endif
XRRFreeScreenResources:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+232
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+232]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 29 & 0xffff
#if 29 > 0xffff
movk ip0, 29 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetCrtcGamma
.p2align 4
.type XRRGetCrtcGamma, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetCrtcGamma
#endif
XRRGetCrtcGamma:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+240
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+240]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 30 & 0xffff
#if 30 > 0xffff
movk ip0, 30 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetCrtcGammaSize
.p2align 4
.type XRRGetCrtcGammaSize, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetCrtcGammaSize
#endif
XRRGetCrtcGammaSize:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+248
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+248]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 31 & 0xffff
#if 31 > 0xffff
movk ip0, 31 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetCrtcInfo
.p2align 4
.type XRRGetCrtcInfo, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetCrtcInfo
#endif
XRRGetCrtcInfo:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+256
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+256]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 32 & 0xffff
#if 32 > 0xffff
movk ip0, 32 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetCrtcTransform
.p2align 4
.type XRRGetCrtcTransform, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetCrtcTransform
#endif
XRRGetCrtcTransform:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+264
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+264]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 33 & 0xffff
#if 33 > 0xffff
movk ip0, 33 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetMonitors
.p2align 4
.type XRRGetMonitors, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetMonitors
#endif
XRRGetMonitors:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+272
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+272]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 34 & 0xffff
#if 34 > 0xffff
movk ip0, 34 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetOutputInfo
.p2align 4
.type XRRGetOutputInfo, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetOutputInfo
#endif
XRRGetOutputInfo:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+280
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+280]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 35 & 0xffff
#if 35 > 0xffff
movk ip0, 35 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetOutputPrimary
.p2align 4
.type XRRGetOutputPrimary, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetOutputPrimary
#endif
XRRGetOutputPrimary:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+288
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+288]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 36 & 0xffff
#if 36 > 0xffff
movk ip0, 36 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetOutputProperty
.p2align 4
.type XRRGetOutputProperty, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetOutputProperty
#endif
XRRGetOutputProperty:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+296
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+296]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 37 & 0xffff
#if 37 > 0xffff
movk ip0, 37 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetPanning
.p2align 4
.type XRRGetPanning, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetPanning
#endif
XRRGetPanning:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+304
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+304]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 38 & 0xffff
#if 38 > 0xffff
movk ip0, 38 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetProviderInfo
.p2align 4
.type XRRGetProviderInfo, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetProviderInfo
#endif
XRRGetProviderInfo:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+312
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+312]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 39 & 0xffff
#if 39 > 0xffff
movk ip0, 39 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetProviderProperty
.p2align 4
.type XRRGetProviderProperty, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetProviderProperty
#endif
XRRGetProviderProperty:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+320
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+320]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 40 & 0xffff
#if 40 > 0xffff
movk ip0, 40 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetProviderResources
.p2align 4
.type XRRGetProviderResources, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetProviderResources
#endif
XRRGetProviderResources:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+328
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+328]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 41 & 0xffff
#if 41 > 0xffff
movk ip0, 41 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetScreenInfo
.p2align 4
.type XRRGetScreenInfo, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetScreenInfo
#endif
XRRGetScreenInfo:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+336
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+336]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 42 & 0xffff
#if 42 > 0xffff
movk ip0, 42 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetScreenResources
.p2align 4
.type XRRGetScreenResources, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetScreenResources
#endif
XRRGetScreenResources:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+344
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+344]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 43 & 0xffff
#if 43 > 0xffff
movk ip0, 43 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetScreenResourcesCurrent
.p2align 4
.type XRRGetScreenResourcesCurrent, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetScreenResourcesCurrent
#endif
XRRGetScreenResourcesCurrent:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+352
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+352]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 44 & 0xffff
#if 44 > 0xffff
movk ip0, 44 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRGetScreenSizeRange
.p2align 4
.type XRRGetScreenSizeRange, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRGetScreenSizeRange
#endif
XRRGetScreenSizeRange:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+360
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+360]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 45 & 0xffff
#if 45 > 0xffff
movk ip0, 45 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRListOutputProperties
.p2align 4
.type XRRListOutputProperties, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRListOutputProperties
#endif
XRRListOutputProperties:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+368
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+368]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 46 & 0xffff
#if 46 > 0xffff
movk ip0, 46 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRListProviderProperties
.p2align 4
.type XRRListProviderProperties, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRListProviderProperties
#endif
XRRListProviderProperties:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+376
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+376]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 47 & 0xffff
#if 47 > 0xffff
movk ip0, 47 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRQueryExtension
.p2align 4
.type XRRQueryExtension, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRQueryExtension
#endif
XRRQueryExtension:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+384
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+384]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 48 & 0xffff
#if 48 > 0xffff
movk ip0, 48 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRQueryOutputProperty
.p2align 4
.type XRRQueryOutputProperty, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRQueryOutputProperty
#endif
XRRQueryOutputProperty:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+392
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+392]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 49 & 0xffff
#if 49 > 0xffff
movk ip0, 49 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRQueryProviderProperty
.p2align 4
.type XRRQueryProviderProperty, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRQueryProviderProperty
#endif
XRRQueryProviderProperty:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+400
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+400]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 50 & 0xffff
#if 50 > 0xffff
movk ip0, 50 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRQueryVersion
.p2align 4
.type XRRQueryVersion, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRQueryVersion
#endif
XRRQueryVersion:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+408
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+408]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 51 & 0xffff
#if 51 > 0xffff
movk ip0, 51 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRRates
.p2align 4
.type XRRRates, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRRates
#endif
XRRRates:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+416
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+416]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 52 & 0xffff
#if 52 > 0xffff
movk ip0, 52 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRRootToScreen
.p2align 4
.type XRRRootToScreen, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRRootToScreen
#endif
XRRRootToScreen:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+424
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+424]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 53 & 0xffff
#if 53 > 0xffff
movk ip0, 53 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRRotations
.p2align 4
.type XRRRotations, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRRotations
#endif
XRRRotations:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+432
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+432]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 54 & 0xffff
#if 54 > 0xffff
movk ip0, 54 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSelectInput
.p2align 4
.type XRRSelectInput, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSelectInput
#endif
XRRSelectInput:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+440
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+440]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 55 & 0xffff
#if 55 > 0xffff
movk ip0, 55 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetCrtcConfig
.p2align 4
.type XRRSetCrtcConfig, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetCrtcConfig
#endif
XRRSetCrtcConfig:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+448
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+448]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 56 & 0xffff
#if 56 > 0xffff
movk ip0, 56 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetCrtcGamma
.p2align 4
.type XRRSetCrtcGamma, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetCrtcGamma
#endif
XRRSetCrtcGamma:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+456
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+456]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 57 & 0xffff
#if 57 > 0xffff
movk ip0, 57 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetCrtcTransform
.p2align 4
.type XRRSetCrtcTransform, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetCrtcTransform
#endif
XRRSetCrtcTransform:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+464
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+464]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 58 & 0xffff
#if 58 > 0xffff
movk ip0, 58 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetMonitor
.p2align 4
.type XRRSetMonitor, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetMonitor
#endif
XRRSetMonitor:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+472
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+472]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 59 & 0xffff
#if 59 > 0xffff
movk ip0, 59 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetOutputPrimary
.p2align 4
.type XRRSetOutputPrimary, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetOutputPrimary
#endif
XRRSetOutputPrimary:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+480
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+480]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 60 & 0xffff
#if 60 > 0xffff
movk ip0, 60 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetPanning
.p2align 4
.type XRRSetPanning, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetPanning
#endif
XRRSetPanning:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+488
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+488]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 61 & 0xffff
#if 61 > 0xffff
movk ip0, 61 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetProviderOffloadSink
.p2align 4
.type XRRSetProviderOffloadSink, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetProviderOffloadSink
#endif
XRRSetProviderOffloadSink:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+496
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+496]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 62 & 0xffff
#if 62 > 0xffff
movk ip0, 62 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetProviderOutputSource
.p2align 4
.type XRRSetProviderOutputSource, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetProviderOutputSource
#endif
XRRSetProviderOutputSource:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+504
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+504]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 63 & 0xffff
#if 63 > 0xffff
movk ip0, 63 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetScreenConfig
.p2align 4
.type XRRSetScreenConfig, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetScreenConfig
#endif
XRRSetScreenConfig:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+512
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+512]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 64 & 0xffff
#if 64 > 0xffff
movk ip0, 64 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetScreenConfigAndRate
.p2align 4
.type XRRSetScreenConfigAndRate, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetScreenConfigAndRate
#endif
XRRSetScreenConfigAndRate:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+520
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+520]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 65 & 0xffff
#if 65 > 0xffff
movk ip0, 65 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSetScreenSize
.p2align 4
.type XRRSetScreenSize, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSetScreenSize
#endif
XRRSetScreenSize:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+528
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+528]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 66 & 0xffff
#if 66 > 0xffff
movk ip0, 66 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRSizes
.p2align 4
.type XRRSizes, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRSizes
#endif
XRRSizes:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+536
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+536]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 67 & 0xffff
#if 67 > 0xffff
movk ip0, 67 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRTimes
.p2align 4
.type XRRTimes, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRTimes
#endif
XRRTimes:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+544
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+544]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 68 & 0xffff
#if 68 > 0xffff
movk ip0, 68 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc
/*
* Copyright 2018-2025 Yury Gribov
*
* The MIT License (MIT)
*
* Use of this source code is governed by MIT license that can be
* found in the LICENSE.txt file.
*/
.globl XRRUpdateConfiguration
.p2align 4
.type XRRUpdateConfiguration, %function
#ifndef IMPLIB_EXPORT_SHIMS
.hidden XRRUpdateConfiguration
#endif
XRRUpdateConfiguration:
.cfi_startproc
1:
// Load address
// TODO: can we do this faster on newer ARMs?
adrp ip0, _libXrandr_so_tramp_table+552
ldr ip0, [ip0, #:lo12:_libXrandr_so_tramp_table+552]
cbz ip0, 2f
// Fast path
br ip0
2:
// Slow path
mov ip0, 69 & 0xffff
#if 69 > 0xffff
movk ip0, 69 >> 16, lsl #16
#endif
stp ip0, lr, [sp, #-16]!; .cfi_adjust_cfa_offset 16; .cfi_rel_offset lr, 8
bl _libXrandr_so_save_regs_and_resolve
ldp xzr, lr, [sp], #16; .cfi_adjust_cfa_offset -16; .cfi_restore lr
br ip0
.cfi_endproc