yury
11a9ff4a43
* Removed unused vars for mipsel compiler.
...
git-svn-id: trunk@31745 -
2015-09-17 15:46:30 +00:00
Jonas Maebe
0fc1fd6ac1
* replaced current_procinfo.currtrue/falselabel with storing the true/false
...
labels of LOC_JUMP in the node's location. This generates some extra jumps
for short circuit boolean and/or-expressions if optimizations are off, but
with optimisations enabled the generated code is the same (except for JVM
because the jump threading optimisation isn't enabled there yet).
git-svn-id: trunk@31431 -
2015-08-27 18:28:57 +00:00
sergei
57094d495b
+ MIPS: implement inline full 64-bit multiplication, for cases when overflow checking is off and CPU is set to mips32r2.
...
git-svn-id: trunk@29354 -
2014-12-28 22:03:15 +00:00
sergei
d9a7d28838
+ MIPS: support floating point conditions in its emulated flags, on MIPS4+ convert such flags to registers using conditional move instructions (i.e. without branching). For older cores generated code remains the same.
...
git-svn-id: trunk@28535 -
2014-08-29 18:18:17 +00:00
Jonas Maebe
4065483a50
* completed thlcgobj.location_force_fpureg(), use it everywhere and removed
...
ncgutil/thlcg2ll.location_force_fpureg()
git-svn-id: trunk@27071 -
2014-03-10 09:01:05 +00:00
sergei
d72478eb64
* Function tjvmaddnode.cmpnode2topcmp is, in fact, not specific to any target. Moved it to generic tcgaddnode and reused in tmipsaddnode, where the same functionality was implemented in different way.
...
git-svn-id: trunk@26151 -
2013-11-28 11:52:47 +00:00
sergei
fbf6192aff
* tmipsaddnode.second_addfloat: don't bother reusing locations, always allocate a new register for result.
...
git-svn-id: trunk@25857 -
2013-10-26 18:15:24 +00:00
sergei
f80ce76a69
+ MIPS: emulate "flags", i.e. support LOC_FLAGS location. This allows to generate differently optimized code for branching and for conversion to register, typically saving a register and instruction per compare.
...
git-svn-id: trunk@25131 -
2013-07-19 14:06:47 +00:00
sergei
7810d6637a
* MIPS: improved 64-bit comparisons by using cg.a_cmp_reg_reg_label, uses less instructions and registers when comparing with zero.
...
git-svn-id: trunk@25008 -
2013-06-28 15:46:17 +00:00
sergei
2944fc8839
* MIPS improvements:
...
* reworked condition codes, changed BC1T and BC1F from separate instructions to condition jumps.
- removed A_P_SW, A_P_LW and A_SPARC8UNIMP
+ support '.set at' and '.set noat' directives
+ prepare to support bgtz,bgez,bltz,blez instructions.
git-svn-id: trunk@24631 -
2013-05-29 17:35:56 +00:00
sergei
a0d3750b81
+ MIPS: implemented direct 32x32 to 64 bit multiplication.
...
git-svn-id: trunk@24436 -
2013-05-04 20:35:24 +00:00
sergei
02a288fd89
* MIPS addnode: rewritten almost completely:
...
* shorter by 280 lines
* generates actual instructions instead of macros
* uses immediate operands for constants when possible
* 64-bit and float comparisons use LOC_JUMP as location
git-svn-id: trunk@24236 -
2013-04-14 12:12:36 +00:00
pierre
93e0dd9c2f
* Patch from Fuxin Zhang: other mips and mipsel CPUs changes
...
git-svn-id: trunk@21538 -
2012-06-07 23:20:06 +00:00
florian
0fa1bf27c1
+ tmipsaddnode.pass_1 setting expectloc correctly
...
git-svn-id: trunk@21420 -
2012-05-28 16:24:21 +00:00
florian
28ac4a8dda
* several mips/mipsel related stuff fixed
...
* regenerated linux makefile to support mipsel
git-svn-id: trunk@14278 -
2009-11-27 15:10:56 +00:00
florian
f54365db94
* adapted more fpc-mips stuff to trunk
...
git-svn-id: trunk@14230 -
2009-11-20 21:13:53 +00:00
florian
0c8546f94c
* more MIPS code of David Zhang integrated
...
git-svn-id: trunk@14228 -
2009-11-20 14:46:45 +00:00