I must have done a search-and-replace from 4 to TargetBytesPerWord
earlier, but in this case it should have been the instruction size
(4), not the word size.
This won't build, it's just a snapshot of what I have so far.
Conflicts:
include/avian/codegen/architecture.h
include/avian/codegen/registers.h
src/codegen/compiler.cpp
src/codegen/compiler/event.cpp
src/codegen/compiler/site.cpp
src/codegen/compiler/site.h
src/codegen/registers.cpp
src/codegen/target/arm/assembler.cpp
src/codegen/target/arm/registers.h
The various Architecture::nextFrame implementations were not walking
the stack correctly when a StackOverflowError was thrown. The
throwStackOverflow thunk is called before the frame of the most
recently called method has been fully created, and because tails=true
builds use a different calling convention, we need to treat this
situation carefully when building a stack trace or unwinding.
Otherwise, we will skip past all the java frames to the next native
frame, which is what was happening.
Previously, I used a shell script to extract modification date ranges
from the Git history, but that was complicated and unreliable, so now
every file just gets the same year range in its copyright header. If
someone needs to know when a specific file was modified and by whom,
they can look at the Git history themselves; no need to include it
redundantly in the header.