<div>Reid, <a href="http://et.al/" target="_blank">et.al</a>,</div>
<div> </div>
<div>I cannot post the JITCodeEmitter efficiency patch for commital yet as it is still dependant upon the newer version of the MachineCodeEmitter being submitted, when it is replaced by the ObjectCodeEmitter. Anyway I have attached the code for you to look at. It is also a endian speedup patch for included. The ObjectCodeEmitter patch should hopefully go in this weekend.</div>


<div> </div>
<div>There are inline raw*emit mehods, these and the reserveBytes method are intended on being used by the cpu *CodeEmitters so they just reserve the maximum instruction length and then use the raw methods to do writing. These and the endian speedup should help to make the raw mechanics of JIT code generation a bit faster.</div>


<div> </div>
<div>Aaron</div>
<div><br><br> </div>
<div class="gmail_quote">2009/7/1 Aaron Gray <span dir="ltr"><<a href="mailto:aaronngray.lists@googlemail.com" target="_blank">aaronngray.lists@googlemail.com</a>></span><br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">Right, good to here it needs some work. I did a patch that has not been<br>applied yet that adds an extend() method to MachineCodeEmitter, that gets<br>

called if there is a buffer overrun, it allows moving the buffer code to a<br>larger buffer, then it continues doing the overruning method and returns<br>normally.<br></blockquote><br>For the JIT?  I was working on a patch to fix that.  It sounds like<br>

yours does a better job, since I was just going to try again with more<br>memory.<br></blockquote><br></div>I'll look it out and get it freshend up. 
<div><br><br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">Bruno is sheduled to do this work on his GSoC, but it will not be completed<br>until September.<br><br>The next patch to go in will use the ObjectCodeEmitter rather than the<br>

MachineCodeEmitter and output to ELF, so you maybe better waiting for this<br>to be done.<br><br>We are really trying to neaten up this area. As soon as the ELF, and MachO<br>ObjectCodeEmitter patches go in I will be modifying the cpu backends to put<br>

the Emitters in to header files and move the create functions that<br>instatiate the templates into separate .cpp files so to remove the code<br>overheads on the resulting lcc and lli binaries. So you may then add your<br>

own *CodeEmitter class to replace or inherit from MachineCodeEmitter.<br></blockquote><br>Interesting.  We'll see.<br></blockquote><br></div>Okay :)<br><font color="#888888"><br>Aaron<br><br></font></blockquote></div>

<br>