summaryrefslogtreecommitdiff
path: root/mpn/alpha/default.m4
diff options
context:
space:
mode:
Diffstat (limited to 'mpn/alpha/default.m4')
-rw-r--r--mpn/alpha/default.m456
1 files changed, 56 insertions, 0 deletions
diff --git a/mpn/alpha/default.m4 b/mpn/alpha/default.m4
new file mode 100644
index 000000000..9b7e61a28
--- /dev/null
+++ b/mpn/alpha/default.m4
@@ -0,0 +1,56 @@
+divert(-1)
+
+define(`ASM_START',
+ `
+ .set noreorder
+ .set noat')
+
+define(`X',`0x$1')
+define(`INT64',
+ `
+ .align 3
+$1: .quad $2')
+
+define(`PROLOGUE',
+ `
+ .text
+ .align 3
+ .globl $1
+ .ent $1
+$1:
+ .frame r30,0,r26
+ .prologue 0')
+
+define(`PROLOGUE_GP',
+ `
+ .text
+ .align 3
+ .globl $1
+ .ent $1
+$1:
+ ldgp r29,0(r27)
+ .frame r30,0,r26
+ .prologue 1')
+
+define(`EPILOGUE',
+ `
+ .end $1')
+
+dnl Map register names r0, r1, etc, to `$0', `$1', etc.
+dnl This is needed on all systems but Unicos
+forloop(i,0,31,
+`define(`r'i,``$''i)'
+)
+forloop(i,0,31,
+`define(`f'i,``$f''i)'
+)
+
+define(`DATASTART',
+ `dnl
+ DATA
+$1:')
+define(`DATAEND',`dnl')
+
+define(`ASM_END',`dnl')
+
+divert