diff options
Diffstat (limited to 'lib/xray/xray_trampoline_mips64.S')
-rw-r--r-- | lib/xray/xray_trampoline_mips64.S | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/lib/xray/xray_trampoline_mips64.S b/lib/xray/xray_trampoline_mips64.S deleted file mode 100644 index 9cbc7e181d9d1..0000000000000 --- a/lib/xray/xray_trampoline_mips64.S +++ /dev/null @@ -1,136 +0,0 @@ -//===-- xray_trampoline_mips64.s --------------------------------*- ASM -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file is a part of XRay, a dynamic runtime instrumentation system. -// -// This implements the MIPS64-specific assembler for the trampolines. -// -//===----------------------------------------------------------------------===// - - .text - .file "xray_trampoline_mips64.S" - .globl __xray_FunctionEntry - .p2align 2 - .type __xray_FunctionEntry,@function -__xray_FunctionEntry: - .cfi_startproc - // Save argument registers before doing any actual work. - .cfi_def_cfa_offset 144 - daddiu $sp, $sp, -144 - sd $ra, 136($sp) - .cfi_offset 31, -8 - sd $gp, 128($sp) - sd $a7, 120($sp) - sd $a6, 112($sp) - sd $a5, 104($sp) - sd $a4, 96($sp) - sd $a3, 88($sp) - sd $a2, 80($sp) - sd $a1, 72($sp) - sd $a0, 64($sp) - sdc1 $f19, 56($sp) - sdc1 $f18, 48($sp) - sdc1 $f17, 40($sp) - sdc1 $f16, 32($sp) - sdc1 $f15, 24($sp) - sdc1 $f14, 16($sp) - sdc1 $f13, 8($sp) - sdc1 $f12, 0($sp) - - lui $gp, %hi(%neg(%gp_rel(__xray_FunctionEntry))) - daddu $gp, $gp, $t9 - daddiu $gp ,$gp, %lo(%neg(%gp_rel(__xray_FunctionEntry))) - - dla $t9, _ZN6__xray19XRayPatchedFunctionE - ld $t9, 0($t9) - - beqz $t9, FunctionEntry_restore - - // a1=0 means that we are tracing an entry event - move $a1, $zero - // Function ID is in t0 (the first parameter). - move $a0, $t0 - jalr $t9 - -FunctionEntry_restore: - // Restore argument registers - ldc1 $f12, 0($sp) - ldc1 $f13, 8($sp) - ldc1 $f14, 16($sp) - ldc1 $f15, 24($sp) - ldc1 $f16, 32($sp) - ldc1 $f17, 40($sp) - ldc1 $f18, 48($sp) - ldc1 $f19, 56($sp) - ld $a0, 64($sp) - ld $a1, 72($sp) - ld $a2, 80($sp) - ld $a3, 88($sp) - ld $a4, 96($sp) - ld $a5, 104($sp) - ld $a6, 112($sp) - ld $a7, 120($sp) - ld $gp, 128($sp) - ld $ra, 136($sp) - daddiu $sp, $sp, 144 - jr $ra -FunctionEntry_end: - .size __xray_FunctionEntry, FunctionEntry_end-__xray_FunctionEntry - .cfi_endproc - - .text - .globl __xray_FunctionExit - .p2align 2 - .type __xray_FunctionExit,@function -__xray_FunctionExit: - .cfi_startproc - // Save return registers before doing any actual work. - .cfi_def_cfa_offset 64 - daddiu $sp, $sp, -64 - sd $ra, 56($sp) - .cfi_offset 31, -8 - sd $gp, 48($sp) - sd $a0, 40($sp) - sd $v1, 32($sp) - sd $v0, 24($sp) - sdc1 $f2, 16($sp) - sdc1 $f1, 8($sp) - sdc1 $f0, 0($sp) - - lui $gp, %hi(%neg(%gp_rel(__xray_FunctionExit))) - daddu $gp, $gp, $t9 - daddiu $gp ,$gp, %lo(%neg(%gp_rel(__xray_FunctionExit))) - - dla $t9, _ZN6__xray19XRayPatchedFunctionE - ld $t9, 0($t9) - - beqz $t9, FunctionExit_restore - - // a1=1 means that we are tracing an exit event - li $a1, 1 - // Function ID is in t0 (the first parameter). - move $a0, $t0 - jalr $t9 - -FunctionExit_restore: - // Restore return registers - ldc1 $f0, 0($sp) - ldc1 $f1, 8($sp) - ldc1 $f2, 16($sp) - ld $v0, 24($sp) - ld $v1, 32($sp) - ld $a0, 40($sp) - ld $gp, 48($sp) - ld $ra, 56($sp) - daddiu $sp, $sp, 64 - jr $ra - -FunctionExit_end: - .size __xray_FunctionExit, FunctionExit_end-__xray_FunctionExit - .cfi_endproc |