Commit Graph

54 Commits

Author SHA1 Message Date
Pierre Muller
be0c92c65d Set default abi for riscv 32/64 embedded 2023-06-15 15:33:23 +00:00
Nikolay Nikolov
4144f8d93a * apply the same alignment parameters to wasm32-embedded as wasm32-wasi 2022-07-15 17:06:47 +03:00
Nikolay Nikolov
8aee781950 * set the stack size to 64kb and stack align to 16 bytes for the wasm32-embedded target 2022-07-15 15:51:00 +03:00
florian
366d1332d1 * nicer casing 2022-04-16 21:40:33 +02:00
Robert Roland
53e5a4a03a Adding aaarch64-embedded target
This adds support for aarch64-embedded, specifically for the Raspberry Pi 3.

Uses UART0 at 115200 baud 8N1 for console IO.
2022-01-05 12:29:00 +00:00
Nikolay Nikolov
bc76487b87 + enable the WebAssembly internal assembler and object writer 2021-09-26 20:46:47 +03:00
Nikolay Nikolov
cc314e61a2 + started working on the WebAssembly internal assembler 2021-09-19 16:17:09 +03:00
nickysn
c5cac5f554 * set the default debug info type to dbg_dwarf2 for the WebAssembly targets
git-svn-id: branches/wasm@48444 -
2021-01-28 15:55:31 +00:00
nickysn
5b2b1beec3 * use ld_embedded instead of ld_wasm for the linker id for the wasm32 embedded target
git-svn-id: branches/wasm@48366 -
2021-01-24 01:48:57 +00:00
nickysn
f77ae51751 * the wasm target (now 'embedded') moved to the i_embed/t_embed units
git-svn-id: branches/wasm@48365 -
2021-01-24 01:45:35 +00:00
nickysn
362d2b50df + enable the Z80 internal assembler
git-svn-id: trunk@45493 -
2020-05-25 00:32:55 +00:00
florian
a4695a7015 * xtensa-embedded: fix setting of the fpu and abi
git-svn-id: trunk@45270 -
2020-05-05 20:41:36 +00:00
nickysn
950c1d1693 + enable the Z80 internal asm (which doesn't work, yet) if the compiler is compiled with -dZ80_INTERNAL_ASM
git-svn-id: trunk@45215 -
2020-05-02 02:35:03 +00:00
nickysn
a857e60dc1 * tsystemcpu.cpu_sys_z80 renamed .cpu_z80 for consistency with the other values in the enum.
git-svn-id: branches/z80@45140 -
2020-04-27 15:50:29 +00:00
nickysn
55f12aac03 + added the tf_no_objectfiles_when_smartlinking target flag to z80-zxspectrum and z80-embedded
git-svn-id: branches/z80@45083 -
2020-04-26 10:22:07 +00:00
nickysn
b1f7770845 + enable tf_smartlink_library and support library-based smartlinking on the z80-embedded target
git-svn-id: branches/z80@45082 -
2020-04-26 10:19:06 +00:00
nickysn
d57ffc4745 * changed the object file format for z80-embedded and z80-zxspectrum to .rel
git-svn-id: branches/z80@44899 -
2020-04-20 23:36:15 +00:00
nickysn
ca77f07013 * fixed offset to procedure/function parameters
git-svn-id: branches/z80@44674 -
2020-04-09 23:48:47 +00:00
nickysn
377f52ee69 + started work on the sdcc-sdasz80 asm backend
git-svn-id: branches/z80@44445 -
2020-03-30 23:31:04 +00:00
nickysn
70abc8ce44 * switch to z80asm (instead of gas, which doesn't support z80) for system_z80_embedded
git-svn-id: branches/z80@44409 -
2020-03-29 19:52:51 +00:00
nickysn
755fe97c51 * synchronize with trunk
git-svn-id: branches/z80@44397 -
2020-03-29 16:24:32 +00:00
nickysn
fd9f3a43ce + added cpu_sys_z80 to the tsystemcpu enum. Name is not cpu_z80, because that
conflicts with tcputype.

git-svn-id: branches/z80@44393 -
2020-03-29 14:25:53 +00:00
florian
2a957e77bf + Xtensa: initial implementation of tcgcpu.g_proc_entry
git-svn-id: trunk@44363 -
2020-03-25 21:17:04 +00:00
florian
9e40d536cb + Xtensa: initial skeleton completed
+ xtensa-embedded support in the compiler

git-svn-id: trunk@44318 -
2020-03-20 22:34:33 +00:00
florian
a20209e691 + tf_init_final_units_by_calls
* arm-embedded generates direct calls for unit init/final now as well

git-svn-id: trunk@43771 -
2019-12-24 16:14:30 +00:00
Jeppe Johansen
a1a17447ff - Fix bug in 64bit softfloat double negation.
- 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: trunk@42335 -
2019-07-07 11:32:27 +00:00
Jonas Maebe
dee1056546 * fixed wrong change of jumpalignmax from 10 to 16 in previous commit
o renamed jumpalignmax and coalescealignmax to jumpalignskipmax/
     coalescealignskipmax to better reflex the meaning of these setting
     (and the difference in meaning to e.g. constalignmax)

git-svn-id: trunk@40682 -
2018-12-28 13:22:50 +00:00
Jonas Maebe
e8512d19b5 * set constalignmax to the same value as varalignmax for all targets where
constalignmax was lower (which does not make sense)

git-svn-id: trunk@40443 -
2018-12-01 23:07:09 +00:00
florian
a092da723a + new fields for more precise control of alignment
+ support of new alignment control values for GNU AS writer
+ support of new alignment control values for binary writer
* better alignment settings on i386-win32
* improved inserted align directives for if nodes

git-svn-id: trunk@40159 -
2018-11-01 20:49:17 +00:00
nickysn
b9ab9e5782 + initial (experimental) implementation of section-based smartlinking for i8086.
Use -dI8086_SMARTLINK_SECTIONS to enable.

git-svn-id: trunk@39211 -
2018-06-11 16:56:33 +00:00
florian
0b10193660 * use dwarf-3 for avr-embedded by default as it makes the size of DW_FORM_ref_addr target indepented
git-svn-id: trunk@37661 -
2017-12-02 17:37:11 +00:00
florian
fc4a8c0daa * more z80 support for the compiler
git-svn-id: branches/z80@35678 -
2017-03-28 20:21:03 +00:00
Károly Balogh
a4b096e9da m68k: added the embedded target
git-svn-id: trunk@35589 -
2017-03-15 13:37:56 +00:00
Károly Balogh
1c4207642c tabs to spaces indentation fixes. no functional changes
git-svn-id: trunk@35318 -
2017-01-17 13:41:13 +00:00
nickysn
c2305809dc + added an i8086-embedded target support to the compiler (RTL and makefile
support are not done yet)

git-svn-id: trunk@33999 -
2016-06-17 19:15:24 +00:00
Jeppe Johansen
1c0c944311 Added x86_64-embedded target. Patch from Benjamin Rosseaux
git-svn-id: trunk@33097 -
2016-02-14 10:57:00 +00:00
Jeppe Johansen
4c8fc04a24 Fix a bunch of alignment problems for arm-embedded, mostly armv6m which uses the generic Move and FIllChar routines.
git-svn-id: trunk@32070 -
2015-10-17 12:11:32 +00:00
florian
3d0b1020d7 * proper alignment constants for avr-embedded
git-svn-id: trunk@30596 -
2015-04-14 20:47:47 +00:00
Jonas Maebe
bacd303208 * synchronized with trunk up to r27758
git-svn-id: branches/hlcgllvm@27779 -
2014-05-12 16:12:34 +00:00
florian
b2b26f84cf * partially merged the mips-embedded branch of Michael Ring:
- startup code/controller units are not merged yet
  - assembler call does not pass the needed CPU type yet

git-svn-id: trunk@27188 -
2014-03-19 21:25:38 +00:00
Jonas Maebe
e9268a0a14 * synchronised with trunk up till r26975
git-svn-id: branches/hlcgllvm@26976 -
2014-03-06 21:36:58 +00:00
Jeppe Johansen
d24cbbf9f5 Changed debug information to dwarf for ARM_embedded, and set local minimum alignment to 4.
Fixed a bug where ARMv7M targets would not use the DIV instructions.
Moved many size-optimizing Thumb2 peephole optimizations to PostPeepHoleOptsCpu. Previously those optimizations could make it impossible to reuse the shared arm peephole optimizations.
Reenabled a fixed MLA/MLS peephole optimization.
Refactored some FindRegDealloc+regLoadedWithNewValue into RegEndOfLife calls.
Fixed some broken UXTB/UXTH optimizations. Previously they would also match UXT* instructions with ROR shifter ops.

git-svn-id: trunk@26198 -
2013-12-08 16:50:15 +00:00
Jonas Maebe
9573160c1a + llvmdatalayout field for tsysteminfo that contains the encoded data layout
as used by llvm for most targets (taken from clang, adapted in some cases
    where we use a custom stack alignment)

git-svn-id: branches/hlcgllvm@26032 -
2013-11-11 11:14:55 +00:00
sergei
38058505ba * Changed linking infrastructure to look like assembler one:
* Changed direct references to linker classes in TSystemInfo records to enumerated ids.
  * RegisterExtennalLinker and RegisterInternalLinker procedures replaced by single RegisterLinker procedure and moved to link.pas.
  - TAbstractLinker is no longer necessary, removed.

This change allows to register linker once per id, rather than once per target, and also allows TSystemInfo records to be read-only.

git-svn-id: trunk@25279 -
2013-08-18 12:01:21 +00:00
Jeppe Johansen
818b43c060 Updated localalign values, and changed the behaviour of alignment of load/stores to not break aligned half-word copies
git-svn-id: branches/laksen/arm-embedded@22828 -
2012-10-23 12:45:40 +00:00
Jonas Maebe
bd31004fdb + describe for each supported target the default guaranteed stack alignment
git-svn-id: trunk@22278 -
2012-09-02 14:32:12 +00:00
florian
e9f2f3388e * use dwarf2 on avr-embedded by default because stabs is difficult due to name mangling issues
git-svn-id: trunk@18973 -
2011-09-04 19:37:26 +00:00
florian
0be59445f8 + basic i386-embedded implementation for multiboot by Jeppe Johansen, resolves #15676
git-svn-id: trunk@16801 -
2011-01-23 11:18:50 +00:00
Jonas Maebe
b4c8c73e70 * changed tf_use_function_relative_addresses into an assembler flag (with
the opposite meaning, af_stabs_use_function_absolute_addresses), because it
    is different on Darwin for the internal and external assembler)

git-svn-id: trunk@14342 -
2009-12-06 13:21:28 +00:00
florian
86aad85b78 + section smartlink bss for embedded targets
git-svn-id: trunk@13341 -
2009-06-27 15:21:01 +00:00