summaryrefslogtreecommitdiff
path: root/lib/xray/xray_trampoline_mips64.S
diff options
context:
space:
mode:
Diffstat (limited to 'lib/xray/xray_trampoline_mips64.S')
-rw-r--r--lib/xray/xray_trampoline_mips64.S136
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