summaryrefslogtreecommitdiffstats
path: root/arch/alpha/lib/srm_dispatch.S
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-01-03 17:49:53 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-01-03 17:49:53 +0000
commiteb7a5bf93aaa4be1d7c6181100ab7639e74d67f7 (patch)
tree5746fea1605ff013be9b78a1556aaad7615d664a /arch/alpha/lib/srm_dispatch.S
parent80ea5b1e15398277650e1197957053b5a71c08bc (diff)
Merge with Linux 2.1.131 plus some more MIPS goodies.
Diffstat (limited to 'arch/alpha/lib/srm_dispatch.S')
-rw-r--r--arch/alpha/lib/srm_dispatch.S43
1 files changed, 43 insertions, 0 deletions
diff --git a/arch/alpha/lib/srm_dispatch.S b/arch/alpha/lib/srm_dispatch.S
new file mode 100644
index 000000000..2bcea3073
--- /dev/null
+++ b/arch/alpha/lib/srm_dispatch.S
@@ -0,0 +1,43 @@
+/*
+ * arch/alpha/lib/srm_dispatch.S
+ */
+
+.globl srm_dispatch
+.ent srm_dispatch
+srm_dispatch:
+ .frame $30,30,$26
+ subq $30,80,$30
+ stq $26,0($30)
+ stq $8,8($30)
+ stq $9,16($30)
+ stq $10,24($30)
+ stq $11,32($30)
+ stq $12,40($30)
+ stq $13,48($30)
+ stq $14,56($30)
+ stq $15,64($30)
+ stq $29,72($30)
+ .mask 0x2400FF00, -80
+ .prologue 0
+
+ ldq $1,hwrpb
+ ldq $2,0xc0($1) /* crb offset */
+ addq $2,$1,$2 /* crb */
+ ldq $27,0($2) /* dispatch procedure value */
+
+ ldq $2,8($27) /* dispatch call address */
+ jsr $26,($2) /* call it (weird VMS call seq) */
+
+ ldq $26,0($30)
+ ldq $8,8($30)
+ ldq $9,16($30)
+ ldq $10,24($30)
+ ldq $11,32($30)
+ ldq $12,40($30)
+ ldq $13,48($30)
+ ldq $14,56($30)
+ ldq $15,64($30)
+ ldq $29,72($30)
+ addq $30,80,$30
+ ret $31,($26),1
+.end srm_dispatch