<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/lib/Target/Mips, branch master</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/lib/Target/Mips?h=master</id>
<link rel='self' href='https://git.amat.us/llvm/atom/lib/Target/Mips?h=master'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-05-14T02:13:45Z</updated>
<entry>
<title>Removed an unnamed namespace and forgot to make two of the functions inside</title>
<updated>2013-05-14T02:13:45Z</updated>
<author>
<name>Reed Kotler</name>
<email>rkotler@mips.com</email>
</author>
<published>2013-05-14T02:13:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=5427aa88d5930655ef9e958446489acc1bf9a160'/>
<id>urn:sha1:5427aa88d5930655ef9e958446489acc1bf9a160</id>
<content type='text'>
"static".



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181754 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>This is the first of three patches which creates stubs used for</title>
<updated>2013-05-14T02:00:24Z</updated>
<author>
<name>Reed Kotler</name>
<email>rkotler@mips.com</email>
</author>
<published>2013-05-14T02:00:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=eafa96485a6c3ce0de4f511ed080a64a7a44f2bb'/>
<id>urn:sha1:eafa96485a6c3ce0de4f511ed080a64a7a44f2bb</id>
<content type='text'>
Mips16/32 floating point interoperability.

When Mips16 code calls external functions that would normally have some
of its parameters or return values passed in floating point registers,
it needs (Mips32) helper functions to do this because while in Mips16 mode
there is no ability to access the floating point registers.

In Pic mode, this is done with a set of predefined functions in libc.
This case is already handled in llvm for Mips16.

In static relocation mode, for efficiency reasons, the compiler generates
stubs that the linker will use if it turns out that the external function
is a Mips32 function. (If it's Mips16, then it does not need the helper
stubs).

These stubs are identically named and the linker knows about these tricks
and will not create multiple copies and will delete them if they are not
needed.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181753 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Mips assembler: Assembler macro ADDIU $rs,imm</title>
<updated>2013-05-13T20:26:46Z</updated>
<author>
<name>Jack Carter</name>
<email>jack.carter@imgtec.com</email>
</author>
<published>2013-05-13T20:26:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=f4a1377322a9234c17b1d324c47248bdb5f62158'/>
<id>urn:sha1:f4a1377322a9234c17b1d324c47248bdb5f62158</id>
<content type='text'>
This patch adds alias for addiu instruction which enables following syntax:

    addiu $rs,imm

The macro is translated as:

    addiu $rs,$rs,imm


Contributer: Vladimir Medic


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181729 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[mips] Add option -mno-ldc1-sdc1.</title>
<updated>2013-05-13T18:23:35Z</updated>
<author>
<name>Akira Hatanaka</name>
<email>ahatanaka@mips.com</email>
</author>
<published>2013-05-13T18:23:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=42f562a1694d24b41f36bbb4d4a086a2a470c625'/>
<id>urn:sha1:42f562a1694d24b41f36bbb4d4a086a2a470c625</id>
<content type='text'>
This option is used when the user wants to avoid emitting double precision FP
loads and stores. Double precision FP loads and stores are expanded to single
precision instructions after register allocation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181718 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[mips] Define a helper function which creates an instruction with the same</title>
<updated>2013-05-13T17:57:42Z</updated>
<author>
<name>Akira Hatanaka</name>
<email>ahatanaka@mips.com</email>
</author>
<published>2013-05-13T17:57:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=151687cb8c4fc65fefcd8964a0c3d77680e90a5c'/>
<id>urn:sha1:151687cb8c4fc65fefcd8964a0c3d77680e90a5c</id>
<content type='text'>
operands as the prototype instruction but with a different opcode.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181714 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[mips] Rename functions. No functionality changes.</title>
<updated>2013-05-13T17:43:19Z</updated>
<author>
<name>Akira Hatanaka</name>
<email>ahatanaka@mips.com</email>
</author>
<published>2013-05-13T17:43:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=6daba286836e6fb2351e7ebc248e18a5c80e8a31'/>
<id>urn:sha1:6daba286836e6fb2351e7ebc248e18a5c80e8a31</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181713 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Remove the MachineMove class.</title>
<updated>2013-05-13T01:16:13Z</updated>
<author>
<name>Rafael Espindola</name>
<email>rafael.espindola@gmail.com</email>
</author>
<published>2013-05-13T01:16:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=4a971705bc6030dc2e4338b3cd5cffa2e0f88b7b'/>
<id>urn:sha1:4a971705bc6030dc2e4338b3cd5cffa2e0f88b7b</id>
<content type='text'>
It was just a less powerful and more confusing version of
MCCFIInstruction. A side effect is that, since MCCFIInstruction uses
dwarf register numbers, calls to getDwarfRegNum are pushed out, which
should allow further simplifications.

I left the MachineModuleInfo::addFrameMove interface unchanged since
this patch was already fairly big.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181680 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Change getFrameMoves to return a const reference.</title>
<updated>2013-05-11T02:38:11Z</updated>
<author>
<name>Rafael Espindola</name>
<email>rafael.espindola@gmail.com</email>
</author>
<published>2013-05-11T02:38:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=d84ccfaf50c7843f31ffc74a8a8e33f779453d6e'/>
<id>urn:sha1:d84ccfaf50c7843f31ffc74a8a8e33f779453d6e</id>
<content type='text'>
To add a frame now there is a dedicated addFrameMove which also takes
care of constructing the move itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181657 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Checkin in of first of several patches to finish implementation of</title>
<updated>2013-05-10T22:25:39Z</updated>
<author>
<name>Reed Kotler</name>
<email>rkotler@mips.com</email>
</author>
<published>2013-05-10T22:25:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=46090914b783b632618268f2a5c99aab83732688'/>
<id>urn:sha1:46090914b783b632618268f2a5c99aab83732688</id>
<content type='text'>
mips16/mips32 floating point interoperability. 

This patch fixes returns from mips16 functions so that if the function
was in fact called by a mips32 hard float routine, then values
that would have been returned in floating point registers are so returned.

Mips16 mode has no floating point instructions so there is no way to
load values into floating point registers.

This is needed when returning float, double, single complex, double complex
in the Mips ABI.

Helper functions in libc for mips16 are available to do this.

For efficiency purposes, these helper functions have a different calling
convention from normal Mips calls.

Registers v0,v1,a0,a1 are used to pass parameters instead of
a0,a1,a2,a3.

This is because v0,v1,a0,a1 are the natural registers used to return
floating point values in soft float. These values can then be moved
to the appropriate floating point registers with no extra cost.

The only register that is modified is ra in this call.

The helper functions make sure that the return values are in the floating
point registers that they would be in if soft float was not in effect
(which it is for mips16, though the soft float is implemented using a mips32
library that uses hard float).
 


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181641 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Remove unused argument.</title>
<updated>2013-05-10T18:16:59Z</updated>
<author>
<name>Rafael Espindola</name>
<email>rafael.espindola@gmail.com</email>
</author>
<published>2013-05-10T18:16:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=6e53180db120b30f600ac31611a9dd47ef7f4921'/>
<id>urn:sha1:6e53180db120b30f600ac31611a9dd47ef7f4921</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181618 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
