tinygo/src/internal/task
Ayke van Laethem ca7c849da3 386: bump minimum requirement to the Pentium 4
Previously we used the i386 target, probably with all optional features
disabled. However, the Pentium 4 has been released a _long_ time ago and
it seems reasonable to me to take that as a minimum requirement.

Upstream Go now also seems to move in this direction:
https://github.com/golang/go/issues/40255

The main motivation for this is that there were floating point issues
when running the tests for the math package:

    GOARCH=386 tinygo test math

I haven't investigated what's the issue, but I strongly suspect it's
caused by the weird x87 80-bit floating point format. This could perhaps
be fixed in a different way (by setting the FPU precision to 64 bits)
but I figured that just setting the minimum requirement to the Pentium 4
would probably be fine. If needed, we can respect the GO386 environment
variable to support these very old CPUs.

To support this newer CPU, I had to make sure that the stack is aligned
to 16 bytes everywhere. This was not yet always the case.
2021-08-10 20:08:27 +02:00
..
queue.go runtime: make channels work in interrupts 2020-07-04 08:34:39 +02:00
task.go scheduler: task.Data made 64bit to avoid overflow 2021-06-01 15:00:07 +02:00
task_coroutine.go compiler: merge runtime.typecodeID and runtime.typeInInterface 2021-03-23 14:32:33 +01:00
task_none.go arm: automatically determine stack sizes 2020-08-27 19:23:22 +02:00
task_stack.go runtime, internal/task: refactor to simplify stack switching 2020-12-05 09:02:11 +01:00
task_stack_386.go 386: bump minimum requirement to the Pentium 4 2021-08-10 20:08:27 +02:00
task_stack_386.S runtime: use the tasks scheduler instead of coroutines 2021-05-09 17:40:13 +02:00
task_stack_amd64.go runtime: use the tasks scheduler instead of coroutines 2021-05-09 17:40:13 +02:00
task_stack_amd64.S runtime: use the tasks scheduler instead of coroutines 2021-05-09 17:40:13 +02:00
task_stack_arm.go runtime: use the tasks scheduler instead of coroutines 2021-05-09 17:40:13 +02:00
task_stack_arm.S runtime: use the tasks scheduler instead of coroutines 2021-05-09 17:40:13 +02:00
task_stack_arm64.go runtime: use the tasks scheduler instead of coroutines 2021-05-09 17:40:13 +02:00
task_stack_arm64.S runtime: use the tasks scheduler instead of coroutines 2021-05-09 17:40:13 +02:00
task_stack_avr.go runtime, internal/task: refactor to simplify stack switching 2020-12-05 09:02:11 +01:00
task_stack_avr.S runtime, internal/task: refactor to simplify stack switching 2020-12-05 09:02:11 +01:00
task_stack_cortexm.go runtime: use the tasks scheduler instead of coroutines 2021-05-09 17:40:13 +02:00
task_stack_cortexm.S runtime, internal/task: refactor to simplify stack switching 2020-12-05 09:02:11 +01:00
task_stack_esp32.go esp32: implement task based scheduler 2020-12-05 09:02:11 +01:00
task_stack_esp32.S esp32: implement task based scheduler 2020-12-05 09:02:11 +01:00
task_stack_esp8266.go esp8266: implement task based scheduler 2020-12-05 11:09:46 +01:00
task_stack_esp8266.S esp8266: implement task based scheduler 2020-12-05 11:09:46 +01:00