summaryrefslogtreecommitdiff
path: root/backup.s
blob: 10f9fb56ec00ef0153f640fc5d469974fb1d14b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
.ifndef __BACKUP__
.set __BACKUP__, 1

.macro __backup_next n, args:vararg
.ifnb \args
	__backup\n \args
.endif
.endm

.macro __backup4 arg:req, args:vararg
	pushq \arg
.ifnb \args
.error "backup: too many arguments"
.endif
.endm

.macro __backup3 arg:req, args:vararg
	pushq \arg
	__backup_next 4, \args
.endm

.macro __backup2 arg:req, args:vararg
	pushq \arg
	__backup_next 3, \args
.endm

.macro backup arg:req, args:vararg
	pushq \arg
	__backup_next 2, \args
.endm

.endif