diff --git a/src/asm/section.c b/src/asm/section.c index ada55352..0910cde8 100644 --- a/src/asm/section.c +++ b/src/asm/section.c @@ -427,6 +427,11 @@ void out_SetLoadSection(char const *name, uint32_t type, uint32_t org, return; } + if (mod == SECTION_FRAGMENT) { + error("`LOAD FRAGMENT` is not allowed\n"); + return; + } + struct Section *sect = getSection(name, type, org, attribs, mod); changeSection(); diff --git a/test/asm/load-fragment.asm b/test/asm/load-fragment.asm index a0225726..7280e70a 100644 --- a/test/asm/load-fragment.asm +++ b/test/asm/load-fragment.asm @@ -1,29 +1,2 @@ SECTION "A", ROM0 -AData:: LOAD FRAGMENT "RAM", WRAM0 -AMem:: - db 0, 1, 2 -AMemEnd:: -ENDL -ADataEnd:: - dw AMem - -SECTION "B", ROM0 -BData:: -LOAD FRAGMENT "RAM", WRAM0 -BMem:: - db 3, 4, 5, 6, 7 -BMemEnd:: -ENDL -BDataEnd:: - dw BMem - -SECTION "C", ROM0 -CData:: -LOAD FRAGMENT "RAM", WRAM0 -CMem:: - db 8, 9 -CMemEnd:: -ENDL -CDataEnd:: - dw CMem diff --git a/test/asm/load-fragment.err b/test/asm/load-fragment.err index e69de29b..9f338d5f 100644 --- a/test/asm/load-fragment.err +++ b/test/asm/load-fragment.err @@ -0,0 +1,3 @@ +ERROR: load-fragment.asm(2): + `LOAD FRAGMENT` is not allowed +error: Assembly aborted (1 error)! diff --git a/test/asm/load-fragment.out.bin b/test/asm/load-fragment.out.bin deleted file mode 100644 index 5b5d841c..00000000 Binary files a/test/asm/load-fragment.out.bin and /dev/null differ diff --git a/test/link/load-fragment-jr.asm b/test/link/load-fragment-jr.asm deleted file mode 100644 index 007a0161..00000000 --- a/test/link/load-fragment-jr.asm +++ /dev/null @@ -1,12 +0,0 @@ -SECTION "main", ROM0 -LOAD FRAGMENT "test", SRAM -ENDL - -; The RPN patch for 'jr Label' in section "alt" refers to section "test", -; but the object file puts section "test" after section "alt". -; This case needs to be handled when identifying patches' PC sections. -SECTION "alt", ROM0 -LOAD FRAGMENT "test", SRAM - jr Label -Label: -ENDL diff --git a/test/link/load-fragment-jr.out b/test/link/load-fragment-jr.out deleted file mode 100644 index e69de29b..00000000 diff --git a/test/link/load-fragment-jr.out.bin b/test/link/load-fragment-jr.out.bin deleted file mode 100644 index ef2d63ad..00000000 Binary files a/test/link/load-fragment-jr.out.bin and /dev/null differ diff --git a/test/link/load-fragment/a.asm b/test/link/load-fragment/a.asm deleted file mode 100644 index 8dbd349b..00000000 --- a/test/link/load-fragment/a.asm +++ /dev/null @@ -1,4 +0,0 @@ -SECTION "main", ROM0 -LOAD FRAGMENT "test", SRAM - db 0 -ENDL diff --git a/test/link/load-fragment/b.asm b/test/link/load-fragment/b.asm deleted file mode 100644 index 246005c8..00000000 --- a/test/link/load-fragment/b.asm +++ /dev/null @@ -1,6 +0,0 @@ -SECTION "SECTION2", ROM0 -LOAD FRAGMENT "test", SRAM - jr Label -Label: - dw Label -ENDL diff --git a/test/link/load-fragment/out.err b/test/link/load-fragment/out.err deleted file mode 100644 index e69de29b..00000000 diff --git a/test/link/load-fragment/out.gb b/test/link/load-fragment/out.gb deleted file mode 100644 index 9445df53..00000000 Binary files a/test/link/load-fragment/out.gb and /dev/null differ diff --git a/test/link/section-fragment/jr-offset-load/a.asm b/test/link/section-fragment/jr-offset-load/a.asm deleted file mode 100644 index 825a41fe..00000000 --- a/test/link/section-fragment/jr-offset-load/a.asm +++ /dev/null @@ -1,4 +0,0 @@ -SECTION FRAGMENT "output", ROM0 -LOAD FRAGMENT "loaded", SRAM - ds 128 -ENDL diff --git a/test/link/section-fragment/jr-offset-load/b.asm b/test/link/section-fragment/jr-offset-load/b.asm deleted file mode 100644 index 2b1af8f9..00000000 --- a/test/link/section-fragment/jr-offset-load/b.asm +++ /dev/null @@ -1,6 +0,0 @@ -SECTION FRAGMENT "output", ROM0 -LOAD FRAGMENT "loaded", SRAM -label: - jr nz, label2 -label2: -ENDL diff --git a/test/link/section-fragment/jr-offset-load/ref.out.bin b/test/link/section-fragment/jr-offset-load/ref.out.bin deleted file mode 100644 index 55edf813..00000000 Binary files a/test/link/section-fragment/jr-offset-load/ref.out.bin and /dev/null differ diff --git a/test/link/test.sh b/test/link/test.sh index f90e1059..0daee4a9 100755 --- a/test/link/test.sh +++ b/test/link/test.sh @@ -130,17 +130,6 @@ rgblinkQuiet -o $gbtemp2 $otemp tryCmp $gbtemp $gbtemp2 rc=$(($? || $rc)) -i="load-fragment.asm" -startTest -$RGBASM -o $otemp load-fragment/a.asm -$RGBASM -o $gbtemp2 load-fragment/b.asm -rgblinkQuiet -o $gbtemp $otemp $gbtemp2 2>$outtemp -tryDiff load-fragment/out.err $outtemp -rc=$(($? || $rc)) -dd if=$gbtemp count=1 bs=$(printf %s $(wc -c < load-fragment/out.gb)) > $otemp 2>/dev/null -tryCmp load-fragment/out.gb $otemp -rc=$(($? || $rc)) - i="overlay.asm" startTest $RGBASM -o $otemp overlay/a.asm @@ -160,15 +149,6 @@ dd if=$gbtemp count=1 bs=$(printf %s $(wc -c < section-fragment/jr-offset/ref.ou tryCmp section-fragment/jr-offset/ref.out.bin $otemp rc=$(($? || $rc)) -i="section-fragment/jr-offset-load.asm" -startTest -$RGBASM -o $otemp section-fragment/jr-offset-load/a.asm -$RGBASM -o $gbtemp2 section-fragment/jr-offset-load/b.asm -rgblinkQuiet -o $gbtemp $otemp $gbtemp2 -dd if=$gbtemp count=1 bs=$(printf %s $(wc -c < section-fragment/jr-offset-load/ref.out.bin)) > $otemp 2>/dev/null -tryCmp section-fragment/jr-offset-load/ref.out.bin $otemp -rc=$(($? || $rc)) - i="section-union/good.asm" startTest $RGBASM -o $otemp section-union/good/a.asm