29 lines
564 B
ArmAsm
29 lines
564 B
ArmAsm
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* 64-bit assembly helpers for asm operations that lack support in both gcc and
|
|
* clang. For example, clang asm does not support segment prefixes.
|
|
*/
|
|
.global dereference_seg_base
|
|
|
|
dereference_seg_base:
|
|
mov %gs:(0), %rax
|
|
ret
|
|
|
|
.global test_page
|
|
.global test_syscall_insn
|
|
|
|
.pushsection ".text", "ax"
|
|
.balign 4096
|
|
test_page: .globl test_page
|
|
.fill 4094,1,0xcc
|
|
|
|
test_syscall_insn:
|
|
syscall
|
|
|
|
.ifne . - test_page - 4096
|
|
.error "test page is not one page long"
|
|
.endif
|
|
.popsection
|
|
|
|
.section .note.GNU-stack,"",%progbits
|