2008-11-19 21:51:34 +00:00
|
|
|
/*
|
|
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
|
|
* PROJECT: ReactOS Kernel
|
|
|
|
* FILE: ntoskrnl/include/amd64/asmmacro.S
|
|
|
|
* PURPOSE: Macros for x64 assembly
|
|
|
|
* PROGRAMMERS: Timo Kreuzer (timo.kreuzer@reactos.org)
|
|
|
|
*/
|
|
|
|
|
|
|
|
.intel_syntax noprefix
|
|
|
|
.code64
|
|
|
|
|
|
|
|
/* Macros for x64 stack unwind OPs */
|
|
|
|
|
|
|
|
.macro .proc name
|
|
|
|
.func name
|
|
|
|
.global _\name
|
|
|
|
_\name:
|
|
|
|
.cfi_startproc
|
|
|
|
.equ cfa_current_offset, -8
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.macro .endproc
|
|
|
|
.cfi_endproc
|
|
|
|
.endfunc
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.macro .allocstack size
|
|
|
|
.cfi_adjust_cfa_offset \size
|
|
|
|
.set cfa_current_offset, cfa_current_offset - \size
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.macro .pushframe code
|
|
|
|
.if (\code == 0)
|
|
|
|
.cfi_adjust_cfa_offset 0x28
|
|
|
|
.set cfa_current_offset, cfa_current_offset - 0x28
|
|
|
|
.else
|
|
|
|
.cfi_adjust_cfa_offset 0x30
|
|
|
|
.set cfa_current_offset, cfa_current_offset - 0x30
|
|
|
|
.endif
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.macro .pushreg reg
|
|
|
|
.cfi_adjust_cfa_offset 8
|
|
|
|
.equ cfa_current_offset, cfa_current_offset - 8
|
|
|
|
.cfi_offset \reg, cfa_current_offset
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.macro .savereg reg, offset
|
|
|
|
// checkme!!!
|
|
|
|
.cfi_offset \reg, \offset
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.macro .savexmm128 reg, offset
|
|
|
|
// checkme!!!
|
|
|
|
.cfi_offset \reg, \offset
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.macro .setframe reg, offset
|
|
|
|
.cfi_def_cfa reg, \offset
|
|
|
|
.equ cfa_current_offset, \offset
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.macro .endprolog
|
|
|
|
.endm
|
|
|
|
|
Merge amd64 NDK from amd64 branch:
34711, 34712, 34842, 34925, 34967, 34970, 35323, 35324, 35347, 35348, 35361, 35436, 35509, 35588, 35739, 35823, 35952, 35966, 36360, 37323, 37434, 37472, 37536, 37820, 37821, 37869, 37990, 38013, 38014, 43426, 43454
svn path=/trunk/; revision=43455
2009-10-14 16:45:35 +00:00
|
|
|
.macro UNIMPLEMENTED2 file, line, func
|
2008-11-19 21:51:34 +00:00
|
|
|
jmp 3f
|
|
|
|
.equ expr, 12
|
|
|
|
1: .asciz "\func"
|
Merge amd64 NDK from amd64 branch:
34711, 34712, 34842, 34925, 34967, 34970, 35323, 35324, 35347, 35348, 35361, 35436, 35509, 35588, 35739, 35823, 35952, 35966, 36360, 37323, 37434, 37472, 37536, 37820, 37821, 37869, 37990, 38013, 38014, 43426, 43454
svn path=/trunk/; revision=43455
2009-10-14 16:45:35 +00:00
|
|
|
2: .asciz "\file"
|
2008-11-19 21:51:34 +00:00
|
|
|
3:
|
|
|
|
sub rsp, 0x20
|
|
|
|
lea rcx, _MsgUnimplemented[rip]
|
|
|
|
lea rdx, 1b[rip]
|
|
|
|
lea r8, 2b[rip]
|
|
|
|
mov r9, \line
|
|
|
|
call _DbgPrint
|
|
|
|
add rsp, 0x20
|
|
|
|
.endm
|
Merge amd64 NDK from amd64 branch:
34711, 34712, 34842, 34925, 34967, 34970, 35323, 35324, 35347, 35348, 35361, 35436, 35509, 35588, 35739, 35823, 35952, 35966, 36360, 37323, 37434, 37472, 37536, 37820, 37821, 37869, 37990, 38013, 38014, 43426, 43454
svn path=/trunk/; revision=43455
2009-10-14 16:45:35 +00:00
|
|
|
#define UNIMPLEMENTED UNIMPLEMENTED2 __FILE__, __LINE__,
|
2008-11-19 21:51:34 +00:00
|
|
|
|