
;`````````````````````````````````;
;  pexl RTL (All x86_32 targets)  ;
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;

; No code here - just common definitions and macros that can be included by
;  other assembly files in rtl/lib

%ifndef PEXL_RTL_ASM
%define PEXL_RTL_ASM

	[BITS 32]

	; Use for function definitions in .asm source instead of a label
	; (allows calling from other C objects)
	
	%macro DECLARE_MANGLED 2
	global _%1@%2
	_%1@%2:
	%1:
	%endmacro

	; Use for function prototypes in .h.asm headers
	; (allows calling from other ASM objects)
	
	%macro FUNCTION_PROTOTYPE 2
	extern _%1@%2
	%define %1 _%1@%2
	%endmacro
	
	; Definitions
	
	%include "pexl_rtl_memory.h.asm"
	%include "pexl_rtl_pxobject.h.asm"
	%include "pexl_rtl_pxstring.h.asm"
	%include "pexl_rtl_pxvector.h.asm"
	
	; Switch to .text section
	;
	
	section .text
	
%endif
