<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri" size="2"><span style="font-size:11pt;">
<div> </div>
<div>I’m adding one more code model to solve the following problem:</div>
<div> </div>
<div>In X86_64 target the Code Model is "Large". It means that address is 64-bit and IP-relative memory operand can't be used in this case.</div>
<div>(Because in IP-relative memory operand the displacement is 32-bit).</div>
<div> </div>
<div>In order to load constant, we use 2 instructions.</div>
<div>movabsq $.LCPI0_0, %rcx</div>
<div>vmulpd  (%rcx), %ymm0, %ymm0</div>
<div> </div>
<div>It happens because .LCPI0_0 is in .rodata section and instruction itself is in .text.</div>
<div> </div>
<div>If I put the constant in .text, the code will look much better:</div>
<div>vmulpd  .LCPI0_0(%rip), %ymm0, %ymm0</div>
<div> </div>
<div> </div>
<div>I define one more Code Model called “LargeJIT”, which will allows to put constants in .text.</div>
<div>This code model is set instead of CodeModel::Large when user defines the JITDefault mode.</div>
<div> </div>
<div>Please review.</div>
<div> </div>
<div>Thank you.</div>
<div> </div>
<ul style="margin:0;padding-left:36pt;">
<font face="Times New Roman" size="3" color="#31849B"><span style="font-size:12pt;">
<li><b><i> Elena</i></b></li></span></font>
</ul>
<div> </div>
<div> </div>
<div> </div>
</span></font>
<p>---------------------------------------------------------------------<br>
Intel Israel (74) Limited</p>

<p>This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.</p></body>
</html>