void func() { #ifdef __powerpc64__ __asm__ ( "mflr 0;" "std 0,16(1);" "addi 1,1,-24;" "mr 31,1;" ".cfi_def_cfa_offset 24;" "addi 0,0,0;" "addi 1,1,24;" "ld 0,16(1);" ".cfi_def_cfa_offset 0;" ); #elif !defined __mips__ __asm__ ( "pushq $0x10;" ".cfi_def_cfa_offset 16;" "jmp label;" "movq $0x48, %rax;" "label: subq $0x38, %rax;" "movq $0x48, %rcx;" "movq $0x48, %rdx;" "movq $0x48, %rax;" "popq %rax;" ); #elif __mips64 __asm__ ( "daddiu $sp,$sp,-16;" ".cfi_def_cfa_offset 16;" "sd $ra,8($sp);" ".cfi_offset 31, -8;" "daddiu $ra,$zero,0;" "ld $ra,8($sp);" "daddiu $sp, $sp,16;" ".cfi_restore 31;" ".cfi_def_cfa_offset 0;" ); #else // For MIPS32 __asm__ ( "addiu $sp,$sp,-8;" ".cfi_def_cfa_offset 8;" "sw $ra,4($sp);" ".cfi_offset 31, -4;" "addiu $ra,$zero,0;" "lw $ra,4($sp);" "addiu $sp,$sp,8;" ".cfi_restore 31;" ".cfi_def_cfa_offset 0;" ); #endif } int main(int argc, char const *argv[]) { func(); }