Remove undefined behavior from shifts

`asl` and `asr` in `src/link/patch.c` courtesy of @pinobatch, and rearranged in RGBASM
evaluators.
This commit is contained in:
ISSOtm
2020-01-17 09:08:49 +01:00
parent 1bd41bf79a
commit b11d121c48
10 changed files with 244 additions and 37 deletions

27
test/asm/shift.asm Normal file
View File

@@ -0,0 +1,27 @@
test: macro
; Test the rpn system, as well as the linker...
dl \1 + zero
; ...as well as the constexpr system
result\@ equ \1
printt "\1 = {result\@}\n"
endm
section "test", ROM0[0]
test 1 << 1
test 1 << 32
test 1 << 9001
test -1 << 1
test -1 << 32
test -1 << -9001
test -1 >> 1
test -1 >> 32
test -1 >> 9001
test -4 >> 1
test -4 >> 2
test -1 >> -9001
SECTION "Zero", ROM0[0]
zero: