toolchain/gcc-linaro-6.3.1-2017.02-x8.../share/doc/gcc/M32R_002fD-Function-Attribu...

120 lines
5.4 KiB
HTML
Raw Normal View History

2024-03-22 05:10:17 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2016 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Funding Free Software", the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below). A copy of the license is included in the section entitled
"GNU Free Documentation License".
(a) The FSF's Front-Cover Text is:
A GNU Manual
(b) The FSF's Back-Cover Text is:
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using the GNU Compiler Collection (GCC): M32R/D Function Attributes</title>
<meta name="description" content="Using the GNU Compiler Collection (GCC): M32R/D Function Attributes">
<meta name="keywords" content="Using the GNU Compiler Collection (GCC): M32R/D Function Attributes">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Function-Attributes.html#Function-Attributes" rel="up" title="Function Attributes">
<link href="m68k-Function-Attributes.html#m68k-Function-Attributes" rel="next" title="m68k Function Attributes">
<link href="M32C-Function-Attributes.html#M32C-Function-Attributes" rel="prev" title="M32C Function Attributes">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="M32R_002fD-Function-Attributes"></a>
<div class="header">
<p>
Next: <a href="m68k-Function-Attributes.html#m68k-Function-Attributes" accesskey="n" rel="next">m68k Function Attributes</a>, Previous: <a href="M32C-Function-Attributes.html#M32C-Function-Attributes" accesskey="p" rel="prev">M32C Function Attributes</a>, Up: <a href="Function-Attributes.html#Function-Attributes" accesskey="u" rel="up">Function Attributes</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="M32R_002fD-Function-Attributes-1"></a>
<h4 class="subsection">6.31.12 M32R/D Function Attributes</h4>
<p>These function attributes are supported by the M32R/D back end:
</p>
<dl compact="compact">
<dt><code>interrupt</code></dt>
<dd><a name="index-interrupt-function-attribute_002c-M32R_002fD"></a>
<p>Use this attribute to indicate
that the specified function is an interrupt handler. The compiler generates
function entry and exit sequences suitable for use in an interrupt handler
when this attribute is present.
</p>
</dd>
<dt><code>model (<var>model-name</var>)</code></dt>
<dd><a name="index-model-function-attribute_002c-M32R_002fD"></a>
<a name="index-function-addressability-on-the-M32R_002fD"></a>
<p>On the M32R/D, use this attribute to set the addressability of an
object, and of the code generated for a function. The identifier
<var>model-name</var> is one of <code>small</code>, <code>medium</code>, or
<code>large</code>, representing each of the code models.
</p>
<p>Small model objects live in the lower 16MB of memory (so that their
addresses can be loaded with the <code>ld24</code> instruction), and are
callable with the <code>bl</code> instruction.
</p>
<p>Medium model objects may live anywhere in the 32-bit address space (the
compiler generates <code>seth/add3</code> instructions to load their addresses),
and are callable with the <code>bl</code> instruction.
</p>
<p>Large model objects may live anywhere in the 32-bit address space (the
compiler generates <code>seth/add3</code> instructions to load their addresses),
and may not be reachable with the <code>bl</code> instruction (the compiler
generates the much slower <code>seth/add3/jl</code> instruction sequence).
</p></dd>
</dl>
</body>
</html>