Ayke van Laethem
714d98354c
arm: provide intrinsics to disable/enable interrupts
2019-02-23 18:52:49 +01:00
Ayke van Laethem
e42289ce61
arm: add SVCAll with 0 arguments
...
Some very basic system calls may have no arguments at all.
2018-12-03 20:13:29 +01:00
Ayke van Laethem
99daa7b38f
arm: implement setting interrupt priorities
2018-12-03 13:50:38 +01:00
Ayke van Laethem
d887d645f7
arm: implement SVCall
...
The SVCall function call is lowered to an inline "svc" instruction. The
first parameter *must* be a constant number.
2018-11-21 17:06:56 +01:00
Ayke van Laethem
27fc397e21
arm: implement arm.ReadRegister
...
This pseudo-function reads the contents of the specified register, for
example "sp".
2018-11-18 18:40:36 +01:00
Ayke van Laethem
392bba8394
compiler: add support for parameters to inline assembly
2018-10-15 19:37:09 +02:00
Ayke van Laethem
8d170d3bd2
all: change special type __volatile to pragma //go:volatile
...
This is one step towards removing unnecessary special casts in most
cases. It is also part of removing as much magic as possible from the
compiler (the pragma is explicit, the special name is not).
2018-09-28 13:17:03 +02:00
Ayke van Laethem
2788ab0172
all: rename __reg to __volatile
...
It is less magical now: it only marks loads and stores as volatile. So
the name '__reg' is a bit wrong now.
2018-09-12 22:05:41 +02:00
Ayke van Laethem
17b5b6ec5b
all: use less magic in memory-mapped IO
...
Don't store addresses in the values of registers, this leads to problems
with char arrays (among others). Instead, do it like it's done in C with
raw addresses cast to struct pointers.
This commit also splits gen-device.py, as AVR and ARM have very
different ideas of what a register is. It's easier to just keep them
separate.
2018-09-05 12:18:21 +02:00
Ayke van Laethem
62c4c5e90b
go fmt
2018-08-17 23:23:20 +02:00
Ayke van Laethem
802302a1aa
Add support for inline assembly
...
This depends on support in LLVM, which hasn't been merged yet.
See: https://reviews.llvm.org/D46437
2018-06-07 18:29:49 +02:00
Ayke van Laethem
a39951c3d7
runtime: Convert device initialization to Go
2018-05-05 20:10:39 +02:00