summaryrefslogtreecommitdiff
path: root/compiler/mips/ncpuadd.pas
Commit message (Collapse)AuthorAgeFilesLines
* * completed thlcgobj.location_force_fpureg(), use it everywhere and removedjonas2014-03-101-5/+5
| | | | | | ncgutil/thlcg2ll.location_force_fpureg() git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27071 3ad0048d-3df7-0310-abae-a5850022a9f2
* * Function tjvmaddnode.cmpnode2topcmp is, in fact, not specific to any ↵sergei2013-11-281-13/+4
| | | | | | target. Moved it to generic tcgaddnode and reused in tmipsaddnode, where the same functionality was implemented in different way. git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@26151 3ad0048d-3df7-0310-abae-a5850022a9f2
* * tmipsaddnode.second_addfloat: don't bother reusing locations, always ↵sergei2013-10-261-5/+2
| | | | | | allocate a new register for result. git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25857 3ad0048d-3df7-0310-abae-a5850022a9f2
* + MIPS: emulate "flags", i.e. support LOC_FLAGS location. This allows to ↵sergei2013-07-191-75/+14
| | | | | | generate differently optimized code for branching and for conversion to register, typically saving a register and instruction per compare. git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25131 3ad0048d-3df7-0310-abae-a5850022a9f2
* * MIPS: improved 64-bit comparisons by using cg.a_cmp_reg_reg_label, uses ↵sergei2013-06-281-14/+7
| | | | | | less instructions and registers when comparing with zero. git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25008 3ad0048d-3df7-0310-abae-a5850022a9f2
* * MIPS improvements:sergei2013-05-291-7/+8
| | | | | | | | | | * 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: http://svn.freepascal.org/svn/fpc/trunk@24631 3ad0048d-3df7-0310-abae-a5850022a9f2
* + MIPS: implemented direct 32x32 to 64 bit multiplication.sergei2013-05-041-0/+33
| | | | git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@24436 3ad0048d-3df7-0310-abae-a5850022a9f2
* * MIPS addnode: rewritten almost completely:sergei2013-04-141-486/+202
| | | | | | | | | | * 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: http://svn.freepascal.org/svn/fpc/trunk@24236 3ad0048d-3df7-0310-abae-a5850022a9f2
* * Patch from Fuxin Zhang: other mips and mipsel CPUs changespierre2012-06-071-64/+138
| | | | git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@21538 3ad0048d-3df7-0310-abae-a5850022a9f2
* + tmipsaddnode.pass_1 setting expectloc correctlyflorian2012-05-281-13/+27
| | | | git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@21420 3ad0048d-3df7-0310-abae-a5850022a9f2
* * several mips/mipsel related stuff fixedflorian2009-11-271-4/+4
| | | | | | * regenerated linux makefile to support mipsel git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@14278 3ad0048d-3df7-0310-abae-a5850022a9f2
* * adapted more fpc-mips stuff to trunkflorian2009-11-201-16/+16
| | | | git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@14230 3ad0048d-3df7-0310-abae-a5850022a9f2
* * more MIPS code of David Zhang integratedflorian2009-11-201-0/+598
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@14228 3ad0048d-3df7-0310-abae-a5850022a9f2