asmacros.h (156699) | asmacros.h (163722) |
---|---|
1/*- 2 * Copyright (c) 1993 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 12 unchanged lines hidden (view full) --- 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * | 1/*- 2 * Copyright (c) 1993 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 12 unchanged lines hidden (view full) --- 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * |
29 * $FreeBSD: head/sys/amd64/include/asmacros.h 156699 2006-03-14 00:01:56Z peter $ | 29 * $FreeBSD: head/sys/amd64/include/asmacros.h 163722 2006-10-27 14:17:50Z bde $ |
30 */ 31 32#ifndef _MACHINE_ASMACROS_H_ 33#define _MACHINE_ASMACROS_H_ 34 35#include <sys/cdefs.h> 36 37/* XXX too much duplication in various asm*.h's. */ --- 65 unchanged lines hidden (view full) --- 103#define CROSSJUMP(jtrue, label, jfalse) \ 104 jfalse 8f; MEXITCOUNT; jmp __CONCAT(to,label); 8: 105#define CROSSJUMPTARGET(label) \ 106 ALIGN_TEXT; __CONCAT(to,label): ; MCOUNT; jmp label 107#define ENTRY(name) GEN_ENTRY(name) ; 9: ; MCOUNT 108#define FAKE_MCOUNT(caller) pushq caller ; call __mcount ; popq %rcx 109#define MCOUNT call __mcount 110#define MCOUNT_LABEL(name) GEN_ENTRY(name) ; nop ; ALIGN_TEXT | 30 */ 31 32#ifndef _MACHINE_ASMACROS_H_ 33#define _MACHINE_ASMACROS_H_ 34 35#include <sys/cdefs.h> 36 37/* XXX too much duplication in various asm*.h's. */ --- 65 unchanged lines hidden (view full) --- 103#define CROSSJUMP(jtrue, label, jfalse) \ 104 jfalse 8f; MEXITCOUNT; jmp __CONCAT(to,label); 8: 105#define CROSSJUMPTARGET(label) \ 106 ALIGN_TEXT; __CONCAT(to,label): ; MCOUNT; jmp label 107#define ENTRY(name) GEN_ENTRY(name) ; 9: ; MCOUNT 108#define FAKE_MCOUNT(caller) pushq caller ; call __mcount ; popq %rcx 109#define MCOUNT call __mcount 110#define MCOUNT_LABEL(name) GEN_ENTRY(name) ; nop ; ALIGN_TEXT |
111#ifdef GUPROF |
|
111#define MEXITCOUNT call HIDENAME(mexitcount) 112#define ret MEXITCOUNT ; NON_GPROF_RET | 112#define MEXITCOUNT call HIDENAME(mexitcount) 113#define ret MEXITCOUNT ; NON_GPROF_RET |
114#else 115#define MEXITCOUNT 116#endif |
|
113 114#else /* !GPROF */ 115/* 116 * ALTENTRY() has to align because it is before a corresponding ENTRY(). 117 * ENTRY() has to align to because there may be no ALTENTRY() before it. 118 * If there is a previous ALTENTRY() then the alignment code for ENTRY() 119 * is empty. 120 */ --- 74 unchanged lines hidden --- | 117 118#else /* !GPROF */ 119/* 120 * ALTENTRY() has to align because it is before a corresponding ENTRY(). 121 * ENTRY() has to align to because there may be no ALTENTRY() before it. 122 * If there is a previous ALTENTRY() then the alignment code for ENTRY() 123 * is empty. 124 */ --- 74 unchanged lines hidden --- |