<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/Common/Arm64Emitter.cpp, branch stable</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>[AArch64] Add ASIMD LDR/STR with register offset</title>
<updated>2015-06-08T00:53:05+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2015-06-08T00:53:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=8ae12d80053c4b69d0f8a3af470b6f0d0d8d1893'/>
<id>8ae12d80053c4b69d0f8a3af470b6f0d0d8d1893</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[AArch64] Upstream PPSSPP's emitter changes.</title>
<updated>2015-06-08T00:50:21+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2015-06-07T21:57:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=05b72c5d31f8c3b04744e62626594847ab1d68c2'/>
<id>05b72c5d31f8c3b04744e62626594847ab1d68c2</id>
<content type='text'>
Requires a minor change to in the JIT to make sure everything still works.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Requires a minor change to in the JIT to make sure everything still works.
</pre>
</div>
</content>
</entry>
<entry>
<title>Set copyright year to when a file was created</title>
<updated>2015-05-25T11:22:31+00:00</updated>
<author>
<name>Tillmann Karras</name>
<email>tilkax@gmail.com</email>
</author>
<published>2015-05-24T04:55:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=30ebb2459eb97ba544547183854775df8460b475'/>
<id>30ebb2459eb97ba544547183854775df8460b475</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update license headers to GPLv2+</title>
<updated>2015-05-25T11:22:31+00:00</updated>
<author>
<name>Tillmann Karras</name>
<email>tilkax@gmail.com</email>
</author>
<published>2015-05-17T23:08:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=cefcb0ace9d363b3679b4e93bcc9ec05f1e5f4f8'/>
<id>cefcb0ace9d363b3679b4e93bcc9ec05f1e5f4f8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[AArch64] Add an assert to SMOV in the emitter.</title>
<updated>2015-03-08T17:29:45+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2015-03-08T17:29:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=f6511c3ba56cf6136e878265f8eef7bdc9f910b9'/>
<id>f6511c3ba56cf6136e878265f8eef7bdc9f910b9</id>
<content type='text'>
SMOV doesn't have an encoding for moving a 32bit element to a 32bit GPR.
One should use UMOV if they want that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
SMOV doesn't have an encoding for moving a 32bit element to a 32bit GPR.
One should use UMOV if they want that.
</pre>
</div>
</content>
</entry>
<entry>
<title>[AArch64] Handle FPR island registers in a less dumb way.</title>
<updated>2015-03-03T06:30:05+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2015-03-03T05:50:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=fbdee7b15f5d123613736bed2bd965281bd0fdca'/>
<id>fbdee7b15f5d123613736bed2bd965281bd0fdca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[AArch64] Stop violating the AAPCS64 so much.</title>
<updated>2015-03-02T17:21:15+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2015-03-02T17:21:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=f1a9db9bdc13e0e706018ed44c0c731c0d076b2a'/>
<id>f1a9db9bdc13e0e706018ed44c0c731c0d076b2a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[AArch64] Implemented paired pushing/popping for the VFP.</title>
<updated>2015-03-02T12:27:47+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2015-03-02T09:41:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=fad46729b097ecd808508e9f57cc5609ed335054'/>
<id>fad46729b097ecd808508e9f57cc5609ed335054</id>
<content type='text'>
A bit more efficient if we are only pushing two VFP registers.
We can probably be a bit more efficient in the future by mixing paired loadstores in to the other paths as well.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A bit more efficient if we are only pushing two VFP registers.
We can probably be a bit more efficient in the future by mixing paired loadstores in to the other paths as well.
</pre>
</div>
</content>
</entry>
<entry>
<title>[AArch64] Implement VFP loadstore paired in the emitter.</title>
<updated>2015-03-02T12:27:17+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2015-03-02T09:41:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=39e357d62d4a0cf936d3a1cdd7ff306d168cc57d'/>
<id>39e357d62d4a0cf936d3a1cdd7ff306d168cc57d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[AArch64] Optimize FPR pushing and popping.</title>
<updated>2015-03-02T12:27:13+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2015-02-28T10:39:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=8b8310d28cd589fb371f425383c756699766c3a1'/>
<id>8b8310d28cd589fb371f425383c756699766c3a1</id>
<content type='text'>
Previously on FPR pushing and popping we would do a single STR/LDR per quad FPR we wanted to push/pop.
In most of our cases when we are pushing and popping VFP registers they will be consecutive registers that will save more efficiently using the NEON
loadstores that can do up to four quad registers.
So this can potentially cutting instructions down to ~1/4th the amount of instructions if the registers are all consecutive.

On the Cortex-A57 this is basically just an icache improvement, but on the Nvidia Denver this may be optimized to be more efficient. Either way it's a
win.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously on FPR pushing and popping we would do a single STR/LDR per quad FPR we wanted to push/pop.
In most of our cases when we are pushing and popping VFP registers they will be consecutive registers that will save more efficiently using the NEON
loadstores that can do up to four quad registers.
So this can potentially cutting instructions down to ~1/4th the amount of instructions if the registers are all consecutive.

On the Cortex-A57 this is basically just an icache improvement, but on the Nvidia Denver this may be optimized to be more efficient. Either way it's a
win.
</pre>
</div>
</content>
</entry>
</feed>
