summaryrefslogtreecommitdiff
path: root/compiler/riscv64
Commit message (Collapse)AuthorAgeFilesLines
* * RiscV64: type conversion to 8 bit improvedflorian2021-03-191-0/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49015 3ad0048d-3df7-0310-abae-a5850022a9f2
* * RiscV: unified itcpugas.pasflorian2021-03-141-157/+0
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48960 3ad0048d-3df7-0310-abae-a5850022a9f2
* + RiscV: initial support of pic generationflorian2021-03-132-2/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48947 3ad0048d-3df7-0310-abae-a5850022a9f2
* * unified RiscV32 and RiscV64 GAS readersflorian2021-03-073-901/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@48894 3ad0048d-3df7-0310-abae-a5850022a9f2
* * patch by Marģers to unify internal error numbers, resolves #37888florian2020-10-131-2/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47103 3ad0048d-3df7-0310-abae-a5850022a9f2
* Replace outdated cgop2string function by tcgsize2str function from cgbase ↵pierre2020-08-251-1/+1
| | | | | | unit to fix EXTDEBUG cycle on powerpc64le-linux git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46689 3ad0048d-3df7-0310-abae-a5850022a9f2
* * reworked usage of tcgnotnode.handle_locjumpflorian2020-08-051-1/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46275 3ad0048d-3df7-0310-abae-a5850022a9f2
* * mark all external assemblers using an LLVM tool using af_llvmjonas2020-07-191-0/+48
| | | | | | | | | | | + added support for constructing target triplets * pass "-target triplet" when using an LLVM assembler o removed no longer needed $DARWINVERSION and $ARCH parameters * consistently use as_clang_gas when clang is used to assembler GAS-style assembly, and rename as_llcm_clang to as_clang_llvm (for consistency) * support pipe assembling when using clang on *nix in all cases git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45807 3ad0048d-3df7-0310-abae-a5850022a9f2
* * disable cs_opt_regvar on all platforms when compiled for LLVM (LLVM doesjonas2020-01-291-2/+2
| | | | | | | | that itself, our LLVM code generator can't handle it, and if it did then afterwards we would have to spill 90% of those register variables again to make them SSA) git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@44062 3ad0048d-3df7-0310-abae-a5850022a9f2
* - RISC-V: Share optimizations between 32 and 64-bit.laksen2020-01-131-323/+24
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43934 3ad0048d-3df7-0310-abae-a5850022a9f2
* * correctly handle local reference in the RISC V assembler readers (both 32 ↵svenbarth2019-12-251-1/+5
| | | | | | and 64 bit) git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43790 3ad0048d-3df7-0310-abae-a5850022a9f2
* * renamed getintparaloc to getcgtempparalocjonas2019-12-242-5/+5
| | | | | | o it can be used for more than integer parameters git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43781 3ad0048d-3df7-0310-abae-a5850022a9f2
* * common naming for fpu_none stringflorian2019-12-241-1/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43768 3ad0048d-3df7-0310-abae-a5850022a9f2
* Add explicit smallint typecast to first marameter of SarSmallint call to ↵pierre2019-11-291-1/+1
| | | | | | avoid range check errors git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43613 3ad0048d-3df7-0310-abae-a5850022a9f2
* Change parameter type to tcgint for is_imm12 and is_lui_imm functions to ↵pierre2019-11-291-4/+4
| | | | | | avoid range check errors git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43609 3ad0048d-3df7-0310-abae-a5850022a9f2
* * patch by J. Gareth Moreton, issue #36271, part 3: support for the other ↵florian2019-11-101-0/+18
| | | | | | architectures git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43441 3ad0048d-3df7-0310-abae-a5850022a9f2
* somehow committing went wrong, second part of last commit:florian2019-09-031-1/+0
| | | | | | | | | | + AArch64: support for vX.8b/vX.16b register names + support for more than 256 registers in the register dat files - removed totherregisterset + AArch64: use vmov to load immediates if possible + AArch64: use eor to clear mm registers git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42917 3ad0048d-3df7-0310-abae-a5850022a9f2
* - Fix bug in 64bit softfloat double negation.laksen2019-07-071-6/+3
| | | | | | | | | - Clean up handling of CPU/FPU type handling in RISCV. - Do more fixes to get RISCV32 working. - Fix most soft multiplication handling for generic RISCV code. Still missing a few. - Add RISCV embedded targets. git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42335 3ad0048d-3df7-0310-abae-a5850022a9f2
* Systematically include fpcdefs.inc at sart of all units used by compilerpierre2019-07-031-0/+2
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42322 3ad0048d-3df7-0310-abae-a5850022a9f2
* * synchronised with trunk till r42049jonas2019-05-126-0/+16
|\ | | | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@42050 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * fix case completeness and unreachable code warnings in compiler that wouldjonas2019-05-126-0/+16
| | | | | | | | | | | | be introduced by the next commit git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42046 3ad0048d-3df7-0310-abae-a5850022a9f2
* | * synchronised with trunk till r41885jonas2019-04-162-3/+9
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41886 3ad0048d-3df7-0310-abae-a5850022a9f2
| * - Add support for .option directive in riscv assembler.laksen2019-04-142-3/+9
| | | | | | | | | | | | - Use addiw when adjusting U32 to S32 git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@41870 3ad0048d-3df7-0310-abae-a5850022a9f2
* | * synchronised with trunk till r41423jonas2019-02-231-28/+24
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@41424 3ad0048d-3df7-0310-abae-a5850022a9f2
| * * keep track of whether a routine has a C-style variadic parameter in thejonas2019-02-231-28/+24
| | | | | | | | | | | | | | | | | | | | procoptions even when it's through an array-of-const parameter * always call create_varargs_paraloc_info() instead of create_paraloc_info() in the former case, even when no varargs parameters are specified (because on some platforms even some non-variadic parameters need to be passed differently, such as on ARM with gnueabihf) git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@41420 3ad0048d-3df7-0310-abae-a5850022a9f2
* | * synchronised with trunk till r40348jonas2018-11-182-4/+3
|\ \ | |/ | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40349 3ad0048d-3df7-0310-abae-a5850022a9f2
| * Disable range check in m68k:tiscv32 and riscv64 cgcpu unitspierre2018-11-151-0/+3
| | | | | | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40319 3ad0048d-3df7-0310-abae-a5850022a9f2
| * - get rid of MaxOps, it is redundant with max_operandsflorian2018-11-021-4/+0
| | | | | | | | | | | | * MatchOpType with three operands is only available of max_operands>2 git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40190 3ad0048d-3df7-0310-abae-a5850022a9f2
* | + fpc_eh_return_data_regno() intrinsic to get the return register numbersjonas2018-10-281-0/+9
|/ | | | | | for the Dwarf EH exception handler result git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@40070 3ad0048d-3df7-0310-abae-a5850022a9f2
* Fix for bug report #34380pierre2018-10-181-0/+6
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39986 3ad0048d-3df7-0310-abae-a5850022a9f2
* Fix compilation with -dEXTDEBUGpierre2018-10-131-1/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39923 3ad0048d-3df7-0310-abae-a5850022a9f2
* Fix riscv64 compiler compilation with -dEXTDEBUGpierre2018-10-131-0/+3
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39922 3ad0048d-3df7-0310-abae-a5850022a9f2
* Merged riscv_new branchflorian2018-09-2631-0/+5085
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39813 3ad0048d-3df7-0310-abae-a5850022a9f2