tinygo/src/runtime
Jaden Weiss 5cc130bb6e
compiler: implement spec-compliant shifts
Previously, the compiler used LLVM's shift instructions directly, which have UB whenever the shifts are large or negative.
This commit adds runtime checks for negative shifts, and handles oversized shifts.
2020-03-28 17:35:19 +01:00
..
cgo runtime/cgo: go fmt 2018-09-14 20:58:00 +02:00
internal/sys all: check formatting on CI 2019-04-13 19:58:58 +02:00
interrupt targets/gba: implement interrupt handler 2020-01-27 21:56:17 +01:00
volatile runtime/volatile: include ReplaceBits method 2020-02-11 15:55:14 +01:00
arch_386.go runtime: add dummy getCurrentStackPointer functions 2019-08-25 13:12:27 +02:00
arch_amd64.go runtime: add dummy getCurrentStackPointer functions 2019-08-25 13:12:27 +02:00
arch_arm.go arm7tdmi: clean up architecture definition 2019-08-25 13:12:27 +02:00
arch_arm64.go runtime: add dummy getCurrentStackPointer functions 2019-08-25 13:12:27 +02:00
arch_avr.go runtime: add dummy getCurrentStackPointer functions 2019-08-25 13:12:27 +02:00
arch_cortexm.go all: add HiFive1 rev B board with RISC-V architecture 2019-07-07 14:03:24 +02:00
arch_tinygoriscv.go all: add HiFive1 rev B board with RISC-V architecture 2019-07-07 14:03:24 +02:00
arch_wasm.go runtime: fix external address declarations 2020-01-27 20:34:10 +01:00
atomic.go all: basic support for the os package 2018-09-16 13:01:03 +02:00
baremetal.go runtime: fix external address declarations 2020-01-27 20:34:10 +01:00
bytes.go Added indexBytePortal from standard library to link as implementation for internal/bytealg.IndexByte 2020-01-28 20:17:11 +01:00
chan.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
complex.go compiler: implement complex division 2019-05-11 15:33:37 +02:00
defer.go compiler: avoid function pointers in defer calls 2018-12-09 16:44:37 +01:00
float.go compiler: implement complex division 2019-05-11 15:33:37 +02:00
func.go compiler: fix crash with linked lists in interfaces 2019-08-05 14:44:30 +02:00
gc_conservative.go run init in a goroutine 2020-03-17 19:25:30 +01:00
gc_globals_conservative.go all: use baremetal build tag 2019-08-04 17:12:07 +02:00
gc_globals_precise.go all: use baremetal build tag 2019-08-04 17:12:07 +02:00
gc_leaking.go run init in a goroutine 2020-03-17 19:25:30 +01:00
gc_none.go run init in a goroutine 2020-03-17 19:25:30 +01:00
gc_stack_portable.go all: use baremetal build tag 2019-08-04 17:12:07 +02:00
gc_stack_raw.go runtime: fix GC to take goroutines into account 2019-08-25 13:12:27 +02:00
hashmap.go compiler,runtime: support operations on nil map 2020-02-26 20:42:01 +01:00
interface.go runtime: implement comparing uintptr values in interfaces 2019-11-09 13:41:27 -05:00
math.go runtime: add support for math intrinsics where supported 2019-07-08 00:32:42 +02:00
os_darwin.go all: add macOS support 2019-02-19 15:54:36 +01:00
os_freebsd.go Add initial FreeBSD support 2019-12-29 10:48:28 +01:00
os_js.go Add runtime.GOOS 2018-08-30 05:48:16 +02:00
os_linux.go Add runtime.GOOS 2018-08-30 05:48:16 +02:00
panic.go compiler: implement spec-compliant shifts 2020-03-28 17:35:19 +01:00
poll.go runtime: remove ctx param from stub code 2019-01-14 20:56:42 +01:00
print.go runtime: print error when panicking with error interface type 2019-04-25 14:06:34 +02:00
runtime.go compiler,runtime: translate memzero calls to LLVM memset intrinsics 2020-03-27 21:01:59 +01:00
runtime_arm7tdmi.go all: include picolibc for bare metal targets 2020-03-22 17:14:59 +01:00
runtime_atmega.go avr: use register wrappers that use runtime/volatile.*Uint8 calls 2019-05-14 12:24:01 +02:00
runtime_atsamd21.go generalize -scheduler=none to support most platforms 2020-03-17 19:25:30 +01:00
runtime_atsamd21e18.go machine/sam: Refactor all machine/runtime code to use new volatile package/API 2019-05-19 19:53:11 +02:00
runtime_atsamd21g18.go machine/sam: Refactor all machine/runtime code to use new volatile package/API 2019-05-19 19:53:11 +02:00
runtime_atsamd51.go generalize -scheduler=none to support most platforms 2020-03-17 19:25:30 +01:00
runtime_atsamd51g19.go machine/samd51: update to accomodate differences in updated SVD files for from main CMSIS-SVD repo 2019-10-09 18:53:32 +02:00
runtime_atsamd51j19.go Adding Board: Feather M4 Express (#688) 2019-11-05 15:34:46 +01:00
runtime_atsamd51j20.go Adafruit PyPortal Support (#800) 2020-01-06 11:53:43 +01:00
runtime_attiny.go avr: add support for the digispark 2018-11-20 18:50:24 +01:00
runtime_avr.go generalize -scheduler=none to support most platforms 2020-03-17 19:25:30 +01:00
runtime_cortexm.go all: include picolibc for bare metal targets 2020-03-22 17:14:59 +01:00
runtime_cortexm_qemu.go generalize -scheduler=none to support most platforms 2020-03-17 19:25:30 +01:00
runtime_fe310.go riscv: implement VirtIO target 2020-03-26 23:03:55 +01:00
runtime_fe310_baremetal.go runtime/hifive1: use CLINT peripheral for timekeeping 2020-01-10 08:04:13 +01:00
runtime_fe310_qemu.go runtime/hifive1: use CLINT peripheral for timekeeping 2020-01-10 08:04:13 +01:00
runtime_nrf.go generalize -scheduler=none to support most platforms 2020-03-17 19:25:30 +01:00
runtime_stm32.go generalize -scheduler=none to support most platforms 2020-03-17 19:25:30 +01:00
runtime_stm32f103xx.go all: add compiler support for interrupts 2020-01-20 21:19:12 +01:00
runtime_stm32f407.go all: add compiler support for interrupts 2020-01-20 21:19:12 +01:00
runtime_tinygoriscv.go riscv: implement VirtIO target 2020-03-26 23:03:55 +01:00
runtime_tinygoriscv_qemu.go riscv: implement VirtIO target 2020-03-26 23:03:55 +01:00
runtime_unix.go run init in a goroutine 2020-03-17 19:25:30 +01:00
runtime_wasm.go run init in a goroutine 2020-03-17 19:25:30 +01:00
scheduler.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
scheduler_any.go run init in a goroutine 2020-03-17 19:25:30 +01:00
scheduler_avr.S avr: add support for tasks scheduler 2020-03-20 15:12:05 +01:00
scheduler_coroutines.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
scheduler_cortexm.S refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
scheduler_none.go run init in a goroutine 2020-03-17 19:25:30 +01:00
scheduler_tasks.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
slice.go runtime: return the correct type from the copy builtin 2020-03-11 15:44:31 -07:00
stack.go Implement runtime functions for reflect 2018-08-30 22:53:34 +02:00
string.go runtime: only implement CountString for required platforms 2019-11-10 21:33:11 +01:00
string_count.go runtime: only implement CountString for required platforms 2019-11-10 21:33:11 +01:00
strings_go111.go compiler,runtime: fix multiple definitions of a single function 2019-05-24 14:51:40 +02:00
sync.go all: basic support for the os package 2018-09-16 13:01:03 +02:00