Go to the source code of this file.
|
| enum | _tag_ARM64INTR_BARRIER_TYPE {
_ARM64_BARRIER_SY = 0xF
, _ARM64_BARRIER_ST = 0xE
, _ARM64_BARRIER_LD = 0xD
, _ARM64_BARRIER_ISH = 0xB
,
_ARM64_BARRIER_ISHST = 0xA
, _ARM64_BARRIER_ISHLD = 0x9
, _ARM64_BARRIER_NSH = 0x7
, _ARM64_BARRIER_NSHST = 0x6
,
_ARM64_BARRIER_NSHLD = 0x5
, _ARM64_BARRIER_OSH = 0x3
, _ARM64_BARRIER_OSHST = 0x2
, _ARM64_BARRIER_OSHLD = 0x1
} |
| |
◆ _ARM64INTR_BARRIER_TYPE
◆ _tag_ARM64INTR_BARRIER_TYPE
| Enumerator |
|---|
| _ARM64_BARRIER_SY | |
| _ARM64_BARRIER_ST | |
| _ARM64_BARRIER_LD | |
| _ARM64_BARRIER_ISH | |
| _ARM64_BARRIER_ISHST | |
| _ARM64_BARRIER_ISHLD | |
| _ARM64_BARRIER_NSH | |
| _ARM64_BARRIER_NSHST | |
| _ARM64_BARRIER_NSHLD | |
| _ARM64_BARRIER_OSH | |
| _ARM64_BARRIER_OSHST | |
| _ARM64_BARRIER_OSHLD | |
Definition at line 14 of file arm64intr.h.
15{
enum _tag_ARM64INTR_BARRIER_TYPE _ARM64INTR_BARRIER_TYPE
◆ __dmb()
Definition at line 694 of file intrin_arm64.h.
695{
696
697
698
700 {
701 case 1:
__asm__ __volatile__(
"dmb oshld" :::
"memory");
break;
702 case 2:
__asm__ __volatile__(
"dmb oshst" :::
"memory");
break;
703 case 3:
__asm__ __volatile__(
"dmb osh" :::
"memory");
break;
704 case 5:
__asm__ __volatile__(
"dmb nshld" :::
"memory");
break;
705 case 6:
__asm__ __volatile__(
"dmb nshst" :::
"memory");
break;
706 case 7:
__asm__ __volatile__(
"dmb nsh" :::
"memory");
break;
707 case 9:
__asm__ __volatile__(
"dmb ishld" :::
"memory");
break;
708 case 10:
__asm__ __volatile__(
"dmb ishst" :::
"memory");
break;
709 case 11:
__asm__ __volatile__(
"dmb ish" :::
"memory");
break;
710 case 13:
__asm__ __volatile__(
"dmb ld" :::
"memory");
break;
711 case 14:
__asm__ __volatile__(
"dmb st" :::
"memory");
break;
712 default:
__asm__ __volatile__(
"dmb sy" :::
"memory");
break;
713 }
714}
GLuint GLuint GLsizei GLenum type
__asm__(".p2align 4, 0x90\n" ".seh_proc __seh2_global_filter_func\n" "__seh2_global_filter_func:\n" "\tsub %rbp, %rax\n" "\tpush %rbp\n" "\t.seh_pushreg %rbp\n" "\tpush %rbx\n" "\t.seh_pushreg %rbx\n" "\tpush %rdi\n" "\t.seh_pushreg %rdi\n" "\tpush %rsi\n" "\t.seh_pushreg %rsi\n" "\tpush %r12\n" "\t.seh_pushreg %r12\n" "\tpush %r13\n" "\t.seh_pushreg %r13\n" "\tpush %r14\n" "\t.seh_pushreg %r14\n" "\tpush %r15\n" "\t.seh_pushreg %r15\n" "\tsub $40, %rsp\n" "\t.seh_stackalloc 40\n" "\t.seh_endprologue\n" "\tsub %rax, %rdx\n" "\tmov %rdx, %rbp\n" "\tjmp *%r8\n" "__seh2_global_filter_func_exit:\n" "\t.p2align 4\n" "\tadd $40, %rsp\n" "\tpop %r15\n" "\tpop %r14\n" "\tpop %r13\n" "\tpop %r12\n" "\tpop %rsi\n" "\tpop %rdi\n" "\tpop %rbx\n" "\tpop %rbp\n" "\tret\n" "\t.seh_endproc")
Referenced by YieldProcessor().
◆ __dsb()
Definition at line 718 of file intrin_arm64.h.
719{
721 {
722 case 1:
__asm__ __volatile__(
"dsb oshld" :::
"memory");
break;
723 case 2:
__asm__ __volatile__(
"dsb oshst" :::
"memory");
break;
724 case 3:
__asm__ __volatile__(
"dsb osh" :::
"memory");
break;
725 case 5:
__asm__ __volatile__(
"dsb nshld" :::
"memory");
break;
726 case 6:
__asm__ __volatile__(
"dsb nshst" :::
"memory");
break;
727 case 7:
__asm__ __volatile__(
"dsb nsh" :::
"memory");
break;
728 case 9:
__asm__ __volatile__(
"dsb ishld" :::
"memory");
break;
729 case 10:
__asm__ __volatile__(
"dsb ishst" :::
"memory");
break;
730 case 11:
__asm__ __volatile__(
"dsb ish" :::
"memory");
break;
731 case 13:
__asm__ __volatile__(
"dsb ld" :::
"memory");
break;
732 case 14:
__asm__ __volatile__(
"dsb st" :::
"memory");
break;
733 default:
__asm__ __volatile__(
"dsb sy" :::
"memory");
break;
734 }
735}
◆ __isb()