diff options
Diffstat (limited to 'arch/alpha/lib/dbg_stackcheck.S')
-rw-r--r-- | arch/alpha/lib/dbg_stackcheck.S | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/alpha/lib/dbg_stackcheck.S b/arch/alpha/lib/dbg_stackcheck.S new file mode 100644 index 000000000000..cc5ce3a5fcad --- /dev/null +++ b/arch/alpha/lib/dbg_stackcheck.S | |||
@@ -0,0 +1,27 @@ | |||
1 | /* | ||
2 | * arch/alpha/lib/stackcheck.S | ||
3 | * Contributed by Richard Henderson (rth@tamu.edu) | ||
4 | * | ||
5 | * Verify that we have not overflowed the stack. Oops if we have. | ||
6 | */ | ||
7 | |||
8 | #include <asm/asm_offsets.h> | ||
9 | |||
10 | .text | ||
11 | .set noat | ||
12 | |||
13 | .align 3 | ||
14 | .globl _mcount | ||
15 | .ent _mcount | ||
16 | _mcount: | ||
17 | .frame $30, 0, $28, 0 | ||
18 | .prologue 0 | ||
19 | |||
20 | lda $0, TASK_SIZE($8) | ||
21 | cmpult $30, $0, $0 | ||
22 | bne $0, 1f | ||
23 | ret ($28) | ||
24 | 1: stq $31, -8($31) # oops me, damn it. | ||
25 | br 1b | ||
26 | |||
27 | .end _mcount | ||