You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
768 B
C
40 lines
768 B
C
/* Copyright (C) 2021,2022 fef <owo@fef.moe>. All rights reserved. */
|
|
|
|
#pragma once
|
|
|
|
#ifndef _ASM_SOURCE
|
|
#error "This header is only intended to be included from assembly files"
|
|
#endif
|
|
|
|
#define ENTRY(name) \
|
|
.global name; \
|
|
.type name, @function; \
|
|
.align 4; \
|
|
name:
|
|
|
|
#define DATA(name) \
|
|
.global name; \
|
|
.type name, @object; \
|
|
name:
|
|
|
|
#define END(name) \
|
|
.size name, . - name
|
|
|
|
/* for legacy code, use ENTRY() and END() instead */
|
|
#define ASM_ENTRY(name) ENTRY(name)
|
|
#define ASM_END(name) END(name)
|
|
|
|
/* local (non-global) subroutine entry point */
|
|
#define L_ENTRY(name) \
|
|
.type name, @function; \
|
|
.align 4; \
|
|
name:
|
|
|
|
/* local (non-global) data field */
|
|
#define L_DATA(name) \
|
|
.type name, @object; \
|
|
name:
|
|
|
|
#define L_END(name) \
|
|
.size name, . - name
|