summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/rtl.h
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2014-01-20 19:37:38 +0000
committerpfg <pfg@FreeBSD.org>2014-01-20 19:37:38 +0000
commit1f607ed1d18c35c3567e76e73ab36d7febd0ff6e (patch)
treeb4444d83964fb2c5f2e877ea9144d67c268428b5 /contrib/gcc/rtl.h
parentbc9afa8bed10defc3946a9cdd6e3a401db21e437 (diff)
downloadFreeBSD-src-1f607ed1d18c35c3567e76e73ab36d7febd0ff6e.zip
FreeBSD-src-1f607ed1d18c35c3567e76e73ab36d7febd0ff6e.tar.gz
MFC r260014, r260099:
gcc: Add support for label attributes and "unavailable" attribute. Apple GCC has extensions to support for both label attributes and an "unavailable" attribute. These are critical for objc but are also useful in regular C/C++. Obtained from: Apple GCC 4.2 - 5531
Diffstat (limited to 'contrib/gcc/rtl.h')
-rw-r--r--contrib/gcc/rtl.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/contrib/gcc/rtl.h b/contrib/gcc/rtl.h
index 57de516..b92d53c 100644
--- a/contrib/gcc/rtl.h
+++ b/contrib/gcc/rtl.h
@@ -908,6 +908,15 @@ extern const char * const note_insn_name[NOTE_INSN_MAX - NOTE_INSN_BIAS];
of LABEL_REFs that point at it, so unused labels can be deleted. */
#define LABEL_NUSES(RTX) XCINT (RTX, 4, CODE_LABEL)
+/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
+/* The alignment of the label, as the log-base-2 of the alignment in bytes. */
+#define LABEL_ALIGN_LOG(RTX) (XCUINT (RTX, 8, CODE_LABEL) & 0xFF)
+/* The maximum number of bytes to skip to achieve that alignment. */
+#define LABEL_MAX_SKIP(RTX) (XCUINT (RTX, 8, CODE_LABEL) >> 8)
+#define SET_LABEL_ALIGN(RTX, ALIGN, MAX_SKIP) \
+ (XCUINT (RTX, 8, CODE_LABEL) = (ALIGN) | ((MAX_SKIP) << 8))
+
+/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
/* Labels carry a two-bit field composed of the ->jump and ->call
bits. This field indicates whether the label is an alternate
entry point, and if so, what kind. */
OpenPOWER on IntegriCloud