mescc: x86_64 support: Add tests.
[mes.git] / lib / x86_64-mes / x86_64.M1
1 ### GNU Mes --- Maxwell Equations of Software
2 ### Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
3 ###
4 ### This file is part of GNU Mes.
5 ###
6 ### Mes is free software# you can redistribute it and/or modify it
7 ### under the terms of the GNU General Public License as published by
8 ### the Free Software Foundation# either version 3 of the License, or (at
9 ### your option) any later version.
10 ###
11 ### GNU Mes is distributed in the hope that it will be useful, but
12 ### WITHOUT ANY WARRANTY# without even the implied warranty of
13 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 ### GNU General Public License for more details.
15 ###
16 ### You should have received a copy of the GNU General Public License
17 ### along with GNU Mes.  If not, see <http://www.gnu.org/licenses/>.
18
19 DEFINE add____$i8,%rax 4883c0
20 DEFINE add____%rbp,%rax 4801e8
21 DEFINE call32 e8
22 DEFINE hlt f4
23 DEFINE mov____$i32,%rax 48c7c0
24 DEFINE mov____$i32,%rdi 48c7c7
25 DEFINE mov____$i32,0x8(%rbp) c745
26 DEFINE mov____$i64,%rax 48a1
27 DEFINE mov____%edi,0x8(%rbp) 897d
28 DEFINE mov____%r8,0x8(%rbp) 4c8945
29 DEFINE mov____%rax,%rax 4889c0
30 DEFINE mov____%rax,%rbx 4889c3
31 DEFINE mov____%rax,%rdi 4889c7
32 DEFINE mov____%rax,%rsi 4889c6
33 DEFINE mov____%rax,0x8(%rbp) 488945
34 DEFINE mov____%rbp,%rax 4889e8
35 DEFINE mov____%rbp,%rsp 4889ec
36 DEFINE mov____%rcx,0x8(%rbp) 48894d
37 DEFINE mov____%rdi,0x8(%rbp) 48897d
38 DEFINE mov____%rdx,0x8(%rbp) 488955
39 DEFINE mov____%rsi,0x8(%rbp) 488975
40 DEFINE mov____%rsp,%rbp 4889e5
41 DEFINE mov____(%rax),%rax 488b00
42 DEFINE mov____0x8(%rbp),%eax 8b45
43 DEFINE mov____0x8(%rbp),%rax 488b45
44 DEFINE nop 90
45 DEFINE pop____%rbp 5d
46 DEFINE push___%rbp 55
47 DEFINE ret c3
48 DEFINE shl____$i8,%rax 48c1e0
49 DEFINE sub____$i32,%rsp 4881ec
50 DEFINE syscall 0f05
51 DEFINE test___%rax,%rax 4885c0
52
53 DEFINE SYS_exit 3c000000