]> git.lizzy.rs Git - rust.git/blob - src/test/run-make/x86_64-fortanix-unknown-sgx-lvi/enclave/foo_cxx.cpp
Auto merge of #100707 - dzvon:fix-typo, r=davidtwco
[rust.git] / src / test / run-make / x86_64-fortanix-unknown-sgx-lvi / enclave / foo_cxx.cpp
1 extern "C" int cc_plus_one_cxx(int *arg);
2 extern "C" int cc_plus_one_cxx_asm(int *arg);
3
4 int cc_plus_one_cxx(int *arg) {
5     return *arg + 1;
6 }
7
8 int cc_plus_one_cxx_asm(int *arg) {
9     int value = 0;
10
11     asm volatile ( "    movl (%1), %0\n"
12                    "    inc %0\n"
13                    "    jmp 1f\n"
14                    "    retq\n"  // never executed, but a shortcut to determine how
15                                  // the assembler deals with `ret` instructions
16                    "1:\n"
17                    : "=r"(value)
18                    : "r"(arg) );
19
20     return value;
21 }