mes/lib/linux/riscv64-mes/elf64-body-exit-42.hex2
W. J. van der Laan 2848cf6a18 lib: Make Linux scaffold work for RISC-V64.
* lib/linux/riscv64-mes-gcc/exit-42.S,
lib/linux/riscv64-mes-gcc/hello-mes.S,
lib/linux/riscv64-mes/elf64-0exit-42.hex2,
lib/linux/riscv64-mes/elf64-0header.hex2,
lib/linux/riscv64-mes/elf64-0hello-mes.hex2,
lib/linux/riscv64-mes/elf64-body-exit-42.hex2,
lib/linux/riscv64-mes/elf64-body-hello-mes.hex2,
lib/linux/riscv64-mes/elf64-footer-single-main.hex2,
lib/linux/riscv64-mes/elf64-header.hex2: New files.  Makes basic
scaffold pass on RISC-V64.
2023-11-05 09:39:29 +01:00

54 lines
1.6 KiB
Plaintext

### GNU Mes --- Maxwell Equations of Software
### Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
### Copyright © 2021 W. J. van der Laan <laanwj@protonmail.com>
###
### This file is part of GNU Mes.
###
### GNU Mes is free software; you can redistribute it and/or modify it
### under the terms of the GNU General Public License as published by
### the Free Software Foundation; either version 3 of the License, or (at
### your option) any later version.
###
### GNU Mes is distributed in the hope that it will be useful, but
### WITHOUT ANY WARRANTY; without even the implied warranty of
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
### GNU General Public License for more details.
###
### You should have received a copy of the GNU General Public License
### along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
### Commentary:
# elf64-body-exit-42.hex2: `exit 42' for x86_64-linux written in hex2
# assembly, for usage with generic elf64-header.hex2 and
# elf64-footer-single-main.hex.
# This ELF binary contains a symbol table, which means that objdump and
# gdb can be used to inspect and debug.
### Code:
# @300
:ELF_text
:_start
# exit(42)
97 02 00 00 # auipc t0,0x0
83 e2 c2 00 # ld t0,12(t0) # main
e7 80 02 00 # jalr t0
&main
# @310
:main
93 08 d0 05 # li a7,93
13 05 a0 02 # li a0,42
73 00 00 00 # ecall
73 00 50 10 # wfi
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 # align to 330
# @330
:ELF_data
65 78 69 74 34 32 20 64 61 74 61 20 68 65 72 65 # exit42 data here"
00