<feed xmlns='http://www.w3.org/2005/Atom'>
<title>external_llvm/test/MC/ARM/basic-thumb2-instructions.s, branch replicant-6.0</title>
<subtitle>external/llvm
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/'/>
<entry>
<title>Update LLVM for 3.5 rebase (r209712).</title>
<updated>2014-05-29T09:49:00+00:00</updated>
<author>
<name>Stephen Hines</name>
<email>srhines@google.com</email>
</author>
<published>2014-05-29T09:49:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/commit/?id=dce4a407a24b04eebc6a376f8e62b41aaa7b071f'/>
<id>dce4a407a24b04eebc6a376f8e62b41aaa7b071f</id>
<content type='text'>
Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
</pre>
</div>
</content>
</entry>
<entry>
<title>Update to LLVM 3.5a.</title>
<updated>2014-04-24T22:53:16+00:00</updated>
<author>
<name>Stephen Hines</name>
<email>srhines@google.com</email>
</author>
<published>2014-04-23T23:57:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/commit/?id=36b56886974eae4f9c5ebc96befd3e7bfe5de338'/>
<id>36b56886974eae4f9c5ebc96befd3e7bfe5de338</id>
<content type='text'>
Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
</pre>
</div>
</content>
</entry>
<entry>
<title>[ARM] In ARMAsmParser, MatchCoprocessorOperandName() permitted p10 and p11 as operands for coprocessor instructions, resulting in encodings that clash with FP/NEON instruction encodings</title>
<updated>2013-11-08T09:16:31+00:00</updated>
<author>
<name>Artyom Skrobov</name>
<email>Artyom.Skrobov@arm.com</email>
</author>
<published>2013-11-08T09:16:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/commit/?id=1b91231347c00bf1be46bdd5b27ae8c45fdc0d0c'/>
<id>1b91231347c00bf1be46bdd5b27ae8c45fdc0d0c</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194253 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194253 91177308-0d34-0410-b5e6-96231b3b80d8
</pre>
</div>
</content>
</entry>
<entry>
<title>Return early from getUnconditionalBranchTargetOpValue if the branch target is</title>
<updated>2013-10-28T20:51:11+00:00</updated>
<author>
<name>Lang Hames</name>
<email>lhames@gmail.com</email>
</author>
<published>2013-10-28T20:51:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/commit/?id=3d478aee8e2480661cb0d98b10da8ad2ebf59fcf'/>
<id>3d478aee8e2480661cb0d98b10da8ad2ebf59fcf</id>
<content type='text'>
an MCExpr, in order to avoid writing an encoded zero value in the immediate
field.

When getUnconditionalBranchTargetOpValue is called with an MCExpr target, we
don't know what the final immediate field value should be. We shouldn't
explicitly set the immediate field to an encoded zero value as zero is encoded
with a non-zero bit pattern. This leads to bits being set that pollute the
final immediate value. The nature of the encoding is such that the polluted
bits only affect very large immediate values, explaining why this hasn't
caused problems earlier.

Fixes &lt;rdar://problem/15155975&gt;.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193535 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
an MCExpr, in order to avoid writing an encoded zero value in the immediate
field.

When getUnconditionalBranchTargetOpValue is called with an MCExpr target, we
don't know what the final immediate field value should be. We shouldn't
explicitly set the immediate field to an encoded zero value as zero is encoded
with a non-zero bit pattern. This leads to bits being set that pollute the
final immediate value. The nature of the encoding is such that the polluted
bits only affect very large immediate values, explaining why this hasn't
caused problems earlier.

Fixes &lt;rdar://problem/15155975&gt;.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193535 91177308-0d34-0410-b5e6-96231b3b80d8
</pre>
</div>
</content>
</entry>
<entry>
<title>Make ARM hint ranges consistent, and add tests for these ranges</title>
<updated>2013-10-23T10:14:40+00:00</updated>
<author>
<name>Artyom Skrobov</name>
<email>Artyom.Skrobov@arm.com</email>
</author>
<published>2013-10-23T10:14:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/commit/?id=b161955ffbda5ccb5293e0c76ef982acb6ec6661'/>
<id>b161955ffbda5ccb5293e0c76ef982acb6ec6661</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193238 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193238 91177308-0d34-0410-b5e6-96231b3b80d8
</pre>
</div>
</content>
</entry>
<entry>
<title>Add hint disassembly syntax for 16-bit Thumb hint instructions.</title>
<updated>2013-10-18T14:09:49+00:00</updated>
<author>
<name>Richard Barton</name>
<email>richard.barton@arm.com</email>
</author>
<published>2013-10-18T14:09:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/commit/?id=485333df7157d6e8681d910d85b271b0bc96b48e'/>
<id>485333df7157d6e8681d910d85b271b0bc96b48e</id>
<content type='text'>
Patch by Artyom Skrobov



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192972 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Patch by Artyom Skrobov



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192972 91177308-0d34-0410-b5e6-96231b3b80d8
</pre>
</div>
</content>
</entry>
<entry>
<title>Make "mov" work for all Thumb2 MOV encodings</title>
<updated>2013-08-21T13:14:58+00:00</updated>
<author>
<name>Mihai Popa</name>
<email>mihail.popa@gmail.com</email>
</author>
<published>2013-08-21T13:14:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/commit/?id=1a9f21abac47dcea0c62341b0ee4fd35481350b8'/>
<id>1a9f21abac47dcea0c62341b0ee4fd35481350b8</id>
<content type='text'>
According to the ARM specification, "mov" is a valid mnemonic for all Thumb2 MOV encodings.
To achieve this, the patch adds one instruction alias with a special range condition to avoid collision with the Thumb1 MOV.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188901 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
According to the ARM specification, "mov" is a valid mnemonic for all Thumb2 MOV encodings.
To achieve this, the patch adds one instruction alias with a special range condition to avoid collision with the Thumb1 MOV.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188901 91177308-0d34-0410-b5e6-96231b3b80d8
</pre>
</div>
</content>
</entry>
<entry>
<title>Thumb2 add immediate alias for SP</title>
<updated>2013-08-19T15:02:25+00:00</updated>
<author>
<name>Mihai Popa</name>
<email>mihail.popa@gmail.com</email>
</author>
<published>2013-08-19T15:02:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/commit/?id=756e89c8c2a3c30ce3a73ed13724aad1b41a5608'/>
<id>756e89c8c2a3c30ce3a73ed13724aad1b41a5608</id>
<content type='text'>
The Thumb2 add immediate is in fact defined for SP. The manual is misleading as it points to a different section for add immediate with SP, however the encoding is the same as for add immediate with register only with the SP operand hard coded. As such add immediate with SP and add immediate with register can safely be treated as the same instruction.

All the patch does is adjust a register constraint on an instruction alias.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188676 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Thumb2 add immediate is in fact defined for SP. The manual is misleading as it points to a different section for add immediate with SP, however the encoding is the same as for add immediate with register only with the SP operand hard coded. As such add immediate with SP and add immediate with register can safely be treated as the same instruction.

All the patch does is adjust a register constraint on an instruction alias.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188676 91177308-0d34-0410-b5e6-96231b3b80d8
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for Thumb2 literal loads with negative zero offset</title>
<updated>2013-08-16T12:03:00+00:00</updated>
<author>
<name>Mihai Popa</name>
<email>mihail.popa@gmail.com</email>
</author>
<published>2013-08-16T12:03:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/commit/?id=e97fc44045732de9fc4715241013f9238ec007dc'/>
<id>e97fc44045732de9fc4715241013f9238ec007dc</id>
<content type='text'>
Thumb2 literal loads use an offset encoding which allows for 
negative zero. This fixes parsing and encoding so that #-0 
is correctly processed. The parser represents #-0 as INT32_MIN.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188549 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Thumb2 literal loads use an offset encoding which allows for 
negative zero. This fixes parsing and encoding so that #-0 
is correctly processed. The parser represents #-0 as INT32_MIN.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188549 91177308-0d34-0410-b5e6-96231b3b80d8
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Thumb2 aliasing complementary instructions taking modified immediates</title>
<updated>2013-08-16T11:55:44+00:00</updated>
<author>
<name>Mihai Popa</name>
<email>mihail.popa@gmail.com</email>
</author>
<published>2013-08-16T11:55:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_llvm/commit/?id=8b36f9e4314ac4d786d2d4fd5fa9e7858487ee9e'/>
<id>8b36f9e4314ac4d786d2d4fd5fa9e7858487ee9e</id>
<content type='text'>
There are many Thumb instructions which take 12-bit immediates encoded in a special
8-byte value + 4-byte rotator form. Not all numbers are represented, and it's legal
to transform an assembly instruction to be able to encode the immediate.

For example: AND and BIC are complementary instructions; one can switch the AND
to a BIC as long as the immediate is complemented. 

The intent is to switch one instruction into its complementary one when the immediate
cannot be encoded in the form requested in the original assembly and when the 
complementary immediate is encodable.

The patch addresses two issues:
1. definition of t2SOImmNot immediate - it has to check that the orignal value is
not encoded naturally
2. t2AND and t2BIC instruction aliases which should use the Thumb2 SOImm operand 
rather than the ARM one.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188548 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are many Thumb instructions which take 12-bit immediates encoded in a special
8-byte value + 4-byte rotator form. Not all numbers are represented, and it's legal
to transform an assembly instruction to be able to encode the immediate.

For example: AND and BIC are complementary instructions; one can switch the AND
to a BIC as long as the immediate is complemented. 

The intent is to switch one instruction into its complementary one when the immediate
cannot be encoded in the form requested in the original assembly and when the 
complementary immediate is encodable.

The patch addresses two issues:
1. definition of t2SOImmNot immediate - it has to check that the orignal value is
not encoded naturally
2. t2AND and t2BIC instruction aliases which should use the Thumb2 SOImm operand 
rather than the ARM one.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188548 91177308-0d34-0410-b5e6-96231b3b80d8
</pre>
</div>
</content>
</entry>
</feed>
