<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/arch/mips/kernel/branch.c, branch v4.1.29</title>
<subtitle>Clone of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git</subtitle>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/'/>
<entry>
<title>MIPS: LLVMLinux: Fix a 'cast to type not present in union' error.</title>
<updated>2015-04-01T15:21:46+00:00</updated>
<author>
<name>Toma Tabacu</name>
<email>toma.tabacu@imgtec.com</email>
</author>
<published>2015-02-24T15:25:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=e6baf0e0b6757082554b9fc217f1f036e9e4ee8f'/>
<id>e6baf0e0b6757082554b9fc217f1f036e9e4ee8f</id>
<content type='text'>
Remove a cast to the 'mips16e_instruction' union inside an if
condition and instead do an assignment to a local
'union mips16e_instruction' variable's 'full' member before the if
statement and use this variable in the if condition.

This is the error message reported by clang:
arch/mips/kernel/branch.c:38:8: error: cast to union type from type 'unsigned short' not present in union
                if (((union mips16e_instruction)inst).ri.opcode
                     ^                          ~~~~

The changed code can be compiled successfully by both gcc and clang.

Signed-off-by: Toma Tabacu &lt;toma.tabacu@imgtec.com&gt;
Signed-off-by: Daniel Sanders &lt;daniel.sanders@imgtec.com&gt;
Cc: Andreas Herrmann &lt;andreas.herrmann@caviumnetworks.com&gt;
Cc: David Daney &lt;david.daney@cavium.com&gt;
Cc: Manuel Lauss &lt;manuel.lauss@gmail.com&gt;
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/9312/
Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove a cast to the 'mips16e_instruction' union inside an if
condition and instead do an assignment to a local
'union mips16e_instruction' variable's 'full' member before the if
statement and use this variable in the if condition.

This is the error message reported by clang:
arch/mips/kernel/branch.c:38:8: error: cast to union type from type 'unsigned short' not present in union
                if (((union mips16e_instruction)inst).ri.opcode
                     ^                          ~~~~

The changed code can be compiled successfully by both gcc and clang.

Signed-off-by: Toma Tabacu &lt;toma.tabacu@imgtec.com&gt;
Signed-off-by: Daniel Sanders &lt;daniel.sanders@imgtec.com&gt;
Cc: Andreas Herrmann &lt;andreas.herrmann@caviumnetworks.com&gt;
Cc: David Daney &lt;david.daney@cavium.com&gt;
Cc: Manuel Lauss &lt;manuel.lauss@gmail.com&gt;
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/9312/
Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MIPS: kernel: mips-r2-to-r6-emul: Add R2 emulator for MIPS R6</title>
<updated>2015-02-17T15:37:37+00:00</updated>
<author>
<name>Leonid Yegoshin</name>
<email>Leonid.Yegoshin@imgtec.com</email>
</author>
<published>2014-12-03T15:47:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=b0a668fb2038d846a466c7a16a358d874002b697'/>
<id>b0a668fb2038d846a466c7a16a358d874002b697</id>
<content type='text'>
MIPS R6 removed quite a few R2 instructions. However, there
is plenty of &lt;R6 userland code so we add an in-kernel emulator
so we can still be able to execute all R2 userland out there.

The emulator comes with a handy debugfs under /mips/ directory
(r2-emul-stats) to provide some basic statistics of the
instructions that are being emulated.

Below are some statistics from booting a minimal buildroot image:

Instruction     Total   BDslot
------------------------------
movs            236969  0
hilo            56686   0
muls            55279   0
divs            10941   0
dsps            0       0
bops            1       0
traps           0       0
fpus            0       0
loads           214981  17
stores          103364  0
llsc            56898   0
dsemul          150418  0
jr              370158
bltzl           43
bgezl           1594
bltzll          0
bgezll          0
bltzal          39
bgezal          39
beql            14503
bnel            138741
blezl           0
bgtzl           3988

Signed-off-by: Leonid Yegoshin &lt;Leonid.Yegoshin@imgtec.com&gt;
Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MIPS R6 removed quite a few R2 instructions. However, there
is plenty of &lt;R6 userland code so we add an in-kernel emulator
so we can still be able to execute all R2 userland out there.

The emulator comes with a handy debugfs under /mips/ directory
(r2-emul-stats) to provide some basic statistics of the
instructions that are being emulated.

Below are some statistics from booting a minimal buildroot image:

Instruction     Total   BDslot
------------------------------
movs            236969  0
hilo            56686   0
muls            55279   0
divs            10941   0
dsps            0       0
bops            1       0
traps           0       0
fpus            0       0
loads           214981  17
stores          103364  0
llsc            56898   0
dsemul          150418  0
jr              370158
bltzl           43
bgezl           1594
bltzll          0
bgezll          0
bltzal          39
bgezal          39
beql            14503
bnel            138741
blezl           0
bgtzl           3988

Signed-off-by: Leonid Yegoshin &lt;Leonid.Yegoshin@imgtec.com&gt;
Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MIPS: Emulate the new MIPS R6 BNEZC and JIALC instructions</title>
<updated>2015-02-17T15:37:35+00:00</updated>
<author>
<name>Markos Chandras</name>
<email>markos.chandras@imgtec.com</email>
</author>
<published>2015-01-08T11:55:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=28d6f93d201d20ce47a9e8414655569a78f0353c'/>
<id>28d6f93d201d20ce47a9e8414655569a78f0353c</id>
<content type='text'>
MIPS R6 uses the &lt;R6 sdc2 opcode for the new BNEZC and JIALC instructions

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MIPS R6 uses the &lt;R6 sdc2 opcode for the new BNEZC and JIALC instructions

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MIPS: Emulate the new MIPS R6 BEQZC and JIC instructions</title>
<updated>2015-02-17T15:37:35+00:00</updated>
<author>
<name>Markos Chandras</name>
<email>markos.chandras@imgtec.com</email>
</author>
<published>2014-11-27T09:32:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=69b9a2fd05a308b9b1e1f282f3b772491603c582'/>
<id>69b9a2fd05a308b9b1e1f282f3b772491603c582</id>
<content type='text'>
MIPS R6 uses the &lt;R6 ldc2 opcode for the new BEQZC and JIC instructions

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MIPS R6 uses the &lt;R6 ldc2 opcode for the new BEQZC and JIC instructions

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MIPS: Emulate the new MIPS R6 BALC instruction</title>
<updated>2015-02-17T15:37:35+00:00</updated>
<author>
<name>Markos Chandras</name>
<email>markos.chandras@imgtec.com</email>
</author>
<published>2014-11-26T15:43:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=84fef630127aa90ef547ddd018d3dc47b1e79a1e'/>
<id>84fef630127aa90ef547ddd018d3dc47b1e79a1e</id>
<content type='text'>
MIPS R6 uses the &lt;R6 swc2 opcode for the new BALC instructions.

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MIPS R6 uses the &lt;R6 swc2 opcode for the new BALC instructions.

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MIPS: Emulate the new MIPS R6 BNVC, BNEC and BNEZLAC instructions</title>
<updated>2015-02-17T15:37:34+00:00</updated>
<author>
<name>Markos Chandras</name>
<email>markos.chandras@imgtec.com</email>
</author>
<published>2014-11-26T15:03:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=10d962d5342e84630b258dbd89668c359549b5b5'/>
<id>10d962d5342e84630b258dbd89668c359549b5b5</id>
<content type='text'>
MIPS R6 uses the &lt;R6 DADDI opcode for the new BNVC, BNEC and
BNEZLAC instructions.

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MIPS R6 uses the &lt;R6 DADDI opcode for the new BNVC, BNEC and
BNEZLAC instructions.

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MIPS: Emulate the new MIPS R6 BOVC, BEQC and BEQZALC instructions</title>
<updated>2015-02-17T15:37:34+00:00</updated>
<author>
<name>Markos Chandras</name>
<email>markos.chandras@imgtec.com</email>
</author>
<published>2014-11-26T14:08:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=c893ce38b265d5787d03850b36221f595b224538'/>
<id>c893ce38b265d5787d03850b36221f595b224538</id>
<content type='text'>
MIPS R6 uses the &lt;R6 ADDI opcode for the new BOVC, BEQC and
BEQZALC instructions.

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MIPS R6 uses the &lt;R6 ADDI opcode for the new BOVC, BEQC and
BEQZALC instructions.

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MIPS: Emulate the new MIPS R6 branch compact (BC) instruction</title>
<updated>2015-02-17T15:37:34+00:00</updated>
<author>
<name>Markos Chandras</name>
<email>markos.chandras@imgtec.com</email>
</author>
<published>2014-11-26T13:56:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=8467ca0122e20f3f8e73d34907b8b30461af5d4e'/>
<id>8467ca0122e20f3f8e73d34907b8b30461af5d4e</id>
<content type='text'>
MIPS R6 uses the &lt;R6 LWC2 opcode for the new BC instruction.

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MIPS R6 uses the &lt;R6 LWC2 opcode for the new BC instruction.

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MIPS: Emulate the new MIPS R6 B{L,G}T{Z,}{AL,}C instructions</title>
<updated>2015-02-17T15:37:33+00:00</updated>
<author>
<name>Markos Chandras</name>
<email>markos.chandras@imgtec.com</email>
</author>
<published>2014-11-26T13:05:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=f1b44067c19258b7614e3cd09dfe8d8e12ff5895'/>
<id>f1b44067c19258b7614e3cd09dfe8d8e12ff5895</id>
<content type='text'>
MIPS R6 added the following four instructions which share the
BGTZ and BGTZL opcode:

BLTZALC: Compact branch-and-link if GPR rt is &lt; to zero
BGTZALC: Compact branch-and-link if GPR rt is &gt; to zero
BLTZL  : Compact branch if GPR rt is &lt; to zero
BGTZL  : Compact branch if GPR rt is &gt; to zero
BLTC   : Compact branch if GPR rs is less than GPR rt
BLTUC  : Similar to BLTC but unsigned

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MIPS R6 added the following four instructions which share the
BGTZ and BGTZL opcode:

BLTZALC: Compact branch-and-link if GPR rt is &lt; to zero
BGTZALC: Compact branch-and-link if GPR rt is &gt; to zero
BLTZL  : Compact branch if GPR rt is &lt; to zero
BGTZL  : Compact branch if GPR rt is &gt; to zero
BLTC   : Compact branch if GPR rs is less than GPR rt
BLTUC  : Similar to BLTC but unsigned

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MIPS: Emulate the new MIPS R6 B{L,G}Ε{Z,}{AL,}C instructions</title>
<updated>2015-02-17T15:37:33+00:00</updated>
<author>
<name>Markos Chandras</name>
<email>markos.chandras@imgtec.com</email>
</author>
<published>2014-11-26T12:57:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=a8ff66f52d3f17b5ae793955270675c197f73d6c'/>
<id>a8ff66f52d3f17b5ae793955270675c197f73d6c</id>
<content type='text'>
MIPS R6 added the following four instructions which share the
BLEZ and BLEZL opcodes:

BLEZALC: Compact branch-and-link if GPR rt is &lt;= to zero
BGEZALC: Compact branch-and-link if GPR rt is &gt;= to zero
BLEZC  : Compact branch if GPR rt is &lt;= to zero
BGEZC  : Compact branch if GPR rt is &gt;= to zero
BGEC   : Compact branch if GPR rs is less than or equal to GPR rt
BGEUC  : Similar to BGEC but unsigned.

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MIPS R6 added the following four instructions which share the
BLEZ and BLEZL opcodes:

BLEZALC: Compact branch-and-link if GPR rt is &lt;= to zero
BGEZALC: Compact branch-and-link if GPR rt is &gt;= to zero
BLEZC  : Compact branch if GPR rt is &lt;= to zero
BGEZC  : Compact branch if GPR rt is &gt;= to zero
BGEC   : Compact branch if GPR rs is less than or equal to GPR rt
BGEUC  : Similar to BGEC but unsigned.

Signed-off-by: Markos Chandras &lt;markos.chandras@imgtec.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
