original files of m241
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
/* asmX86_64.h - x86_64 assembler definitions header file */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2009
|
||||
*
|
||||
* The right to copy, distribute, modify or otherwise make use
|
||||
* of this software may be licensed only pursuant to the terms
|
||||
* of an applicable Wind River license agreement.
|
||||
*/
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
01b,17mar09,jb Update INT_CONNECT_CODE29
|
||||
01a,20jan09,jb Derived from 32-bit version 01o
|
||||
*/
|
||||
|
||||
#ifndef __INCasmX86_64h
|
||||
#define __INCasmX86_64h
|
||||
|
||||
/************************************************************/
|
||||
|
||||
/*
|
||||
* The following definitions are used for symbol name compatibility.
|
||||
*
|
||||
* When #if 1, sources are assembled assuming the compiler
|
||||
* you are using does not generate global symbols prefixed by "_".
|
||||
* (e.g. elf/dwarf)
|
||||
*
|
||||
* When #if 0, sources are assembled assuming the compiler
|
||||
* you are using generates global symbols prefixed by "_".
|
||||
* (e.g. coff/stabs)
|
||||
*/
|
||||
|
||||
#if TRUE
|
||||
#define FUNC(sym) sym
|
||||
#define FUNC_LABEL(sym) sym:
|
||||
#else
|
||||
#define FUNC(sym) _##sym
|
||||
#define FUNC_LABEL(sym) _##sym:
|
||||
#endif
|
||||
|
||||
#define VAR(sym) FUNC(sym)
|
||||
|
||||
/*
|
||||
* These macros are used to declare assembly language symbols that need
|
||||
* to be typed properly(func or data) to be visible to the OMF tool.
|
||||
* So that the build tool could mark them as an entry point to be linked
|
||||
* correctly. This is an elfism. Use #if 0 for a.out.
|
||||
*/
|
||||
|
||||
#if TRUE
|
||||
#define GTEXT(sym) FUNC(sym) ; .type FUNC(sym),@function
|
||||
#define GDATA(sym) FUNC(sym) ; .type FUNC(sym),@object
|
||||
#else
|
||||
#define GTEXT(sym) FUNC(sym)
|
||||
#define GDATA(sym) FUNC(sym)
|
||||
#endif
|
||||
|
||||
/* Introduced to abstract assembler idiosyncrasies */
|
||||
|
||||
#define FUNC_BEGIN(func) FUNC_LABEL(func)
|
||||
#define FUNC_END(func) .size FUNC(func), . - FUNC(func)
|
||||
|
||||
/************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* fp offsets to arguments
|
||||
*
|
||||
* In 64-bits the first six arguments are in registers,
|
||||
* the rest are on the stack. ARG0 - ARG6 should not
|
||||
* be used.
|
||||
*/
|
||||
|
||||
#define ARG7 16
|
||||
#define ARG8 24
|
||||
#define ARG9 32
|
||||
#define ARG10 40
|
||||
#define ARG11 48
|
||||
#define ARG12 56
|
||||
|
||||
/* Should not be any double args. Will be in registers? */
|
||||
#if 0
|
||||
#define DARG1 8 /* double arguments */
|
||||
#define DARG1L 12
|
||||
#define DARG2 16
|
||||
#define DARG2L 20
|
||||
#define DARG3 24
|
||||
#define DARG3L 28
|
||||
#define DARG4 32
|
||||
#define DARG4L 36
|
||||
#endif
|
||||
|
||||
/*
|
||||
* sp offsets to arguments
|
||||
*
|
||||
* In 64-bits the first six arguments are in registers,
|
||||
* the rest are on the stack. SP_ARG0 - SP_ARG6 should
|
||||
* not be used.
|
||||
*/
|
||||
|
||||
#define SP_ARG7 0
|
||||
#define SP_ARG8 8
|
||||
#define SP_ARG9 16
|
||||
#define SP_ARG10 24
|
||||
#define SP_ARG11 32
|
||||
#define SP_ARG12 40
|
||||
|
||||
/* offset to the IRQ number in the intConnectCode[] */
|
||||
|
||||
#define INT_CONNECT_CODE29 26 /* from the return address of intEnt() */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __INCasmX86_64h */
|
||||
Reference in New Issue
Block a user