diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2019-10-12 00:23:50 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2019-10-12 00:23:50 +0300 |
| commit | 2d78510b9af6f70ec34d77f0e047c698bdf061a9 (patch) | |
| tree | f56f2c9d7c29952748d62aa99d6e8fdc76402ada /backup.s | |
| parent | 1248eae0617555a4f13f7bbee9f120ad3d46c5f3 (diff) | |
draftng
Diffstat (limited to 'backup.s')
| -rw-r--r-- | backup.s | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/backup.s b/backup.s new file mode 100644 index 0000000..10f9fb5 --- /dev/null +++ b/backup.s @@ -0,0 +1,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 |
