📄 shdl-1.s
字号:
! Test inter-file DataLabel support.!! We need to test symbols that are:! * Global, defined in this file, with/without/both-with-without datalabel! references.! * The above in combinations where the reference is/is not from within! the same section. The implementation is currently indifferent to that! fact, but it seems likely to be something that can change.! * Extern with/without/both-with-without datalabel-qualified references.! * The above with reference from same *and* other file.! * The above in combinations for where the symbol is/is not a! STO_SH5_ISA32-marked symbol.! There will be omissions and overlap in combinations. Add spotted! omissions with complementary tests in other files. .text .mode SHmedia! For good measure, we start with a nop to get a non-zero offset within! the .text section. .global startstart: nop! Referenced from the same file, same section, is ISA32, only referenced! with datalabel qualifier. .global foofoo: nop movi (datalabel foo + 8) & 65535,r30! Referenced from same file, same section, both with and without! datalabel qualifier, is ISA32. .global foobothfooboth: nop movi (datalabel fooboth + 16) & 65535,r40 movi (fooboth + 12) & 65535,r40! Same as above, but in different order. .global fooboth2fooboth2: nop movi (fooboth2 + 12) & 65535,r40 movi (datalabel fooboth2 + 16) & 65535,r40! Referenced from this file and another, same section, is ISA32. .global foowithoutfoowithout: nop movi (foowithout + 24) & 65535,r30! Same as above, different section than definition. .global foo_otherfoo_other: nop .global foo_otherbothfoo_otherboth: nop .global foo_otherboth2foo_otherboth2: nop .global foo_otherwithoutfoo_otherwithout: nop .section .rodata .long datalabel foo_other + 4 .long datalabel foo_otherboth + 40 .long foo_otherboth + 24 .long foo_otherboth2 + 24 .long datalabel foo_otherboth2 + 40 .long foo_otherwithout .text! Same as above, mixing references from same and other section. .global foo_mixfoo_mix: nop movi (datalabel foo_mix + 8) & 65535,r30 .global foo_mix2foo_mix2: nop movi (foo_mix2 + 8) & 65535,r30 .global foo_mixbothfoo_mixboth: nop movi (datalabel foo_mixboth + 80) & 65535,r30 movi (foo_mixboth + 80) & 65535,r30 .global foo_mixboth2foo_mixboth2: nop movi (foo_mixboth2 + 64) & 65535,r30 movi (datalabel foo_mixboth2 + 64) & 65535,r30 .global foo_mixwithoutfoo_mixwithout: nop movi (foo_mixwithout + 42) & 65535,r30 .global foo_mixwithout2foo_mixwithout2: nop movi (foo_mixwithout2 + 24) & 65535,r30 .section .rodata .long foo_mix + 4 .long datalabel foo_mix2 + 48 .long datalabel foo_mixboth + 400 .long foo_mixboth + 420 .long foo_mixboth2 + 248 .long datalabel foo_mixboth2 + 240 .long foo_mixwithout! Same as above, referencing symbol in other file (reference only from! this to other file). .text nop movi (datalabel bar + 8) & 65535,r30 movi (datalabel barboth + 16) & 65535,r40 movi (barboth + 12) & 65535,r40 movi (barboth2 + 12) & 65535,r40 movi (datalabel barboth2 + 16) & 65535,r40 movi (barwithout + 24) & 65535,r30 .section .rodata .long datalabel bar_other + 4 .long datalabel bar_otherboth + 40 .long bar_otherboth + 24 .long bar_otherboth2 + 24 .long datalabel bar_otherboth2 + 40 .long bar_otherwithout .text movi (datalabel bar_mix + 8) & 65535,r30 movi (bar_mix2 + 8) & 65535,r30 movi (datalabel bar_mixboth + 80) & 65535,r30 movi (bar_mixboth + 80) & 65535,r30 movi (bar_mixboth2 + 64) & 65535,r30 movi (datalabel bar_mixboth2 + 64) & 65535,r30 movi (bar_mixwithout + 42) & 65535,r30 movi (bar_mixwithout2 + 24) & 65535,r30 .section .rodata .long bar_mix + 4 .long datalabel bar_mix2 + 48 .long datalabel bar_mixboth + 400 .long bar_mixboth + 420 .long bar_mixboth2 + 248 .long datalabel bar_mixboth2 + 240 .long bar_mixwithout! Same as above, referencing symbol in other file *and* within that file. .text movi (datalabel baz + 8) & 65535,r30 movi (datalabel bazboth + 16) & 65535,r40 movi (bazboth + 12) & 65535,r40 movi (bazboth2 + 12) & 65535,r40 movi (datalabel bazboth2 + 16) & 65535,r40 movi (bazwithout + 24) & 65535,r30 .section .rodata .long datalabel baz_other + 4 .long datalabel baz_otherboth + 40 .long baz_otherboth + 24 .long baz_otherboth2 + 24 .long datalabel baz_otherboth2 + 40 .long baz_otherwithout .text movi (datalabel baz_mix + 8) & 65535,r30 movi (baz_mix2 + 8) & 65535,r30 movi (datalabel baz_mixboth + 80) & 65535,r30 movi (baz_mixboth + 80) & 65535,r30 movi (baz_mixboth2 + 64) & 65535,r30 movi (datalabel baz_mixboth2 + 64) & 65535,r30 movi (baz_mixwithout + 42) & 65535,r30 movi (baz_mixwithout2 + 24) & 65535,r30 .section .rodata .long baz_mix + 4 .long datalabel baz_mix2 + 48 .long datalabel baz_mixboth + 400 .long baz_mixboth + 420 .long baz_mixboth2 + 248 .long datalabel baz_mixboth2 + 240 .long baz_mixwithout! Same as all of the above, but where the symbol is not an ISA32 one. .data .global dfoodfoo: .long 0 .long (datalabel dfoo + 8) .global dfoobothdfooboth: .long 0 .long (datalabel dfooboth + 16) .long (dfooboth + 12) .global dfooboth2dfooboth2: .long 0 .long (dfooboth2 + 12) .long (datalabel dfooboth2 + 16) .global dfoowithoutdfoowithout: .long 0 .long (dfoowithout + 24) .global dfoo_otherdfoo_other: .long 0 .global dfoo_otherbothdfoo_otherboth: .long 0 .global dfoo_otherboth2dfoo_otherboth2: .long 0 .global dfoo_otherwithoutdfoo_otherwithout: .long 0 .section .rodata .long datalabel dfoo_other + 4 .long datalabel dfoo_otherboth + 40 .long dfoo_otherboth + 24 .long dfoo_otherboth2 + 24 .long datalabel dfoo_otherboth2 + 40 .long dfoo_otherwithout .data! Same as above, mixing references from same and other section. .global dfoo_mixdfoo_mix: .long 0 .long (datalabel dfoo_mix + 8) .global dfoo_mix2dfoo_mix2: .long 0 .long (dfoo_mix2 + 8) .global dfoo_mixbothdfoo_mixboth: .long 0 .long (datalabel dfoo_mixboth + 80) .long (dfoo_mixboth + 80) .global dfoo_mixboth2dfoo_mixboth2: .long 0 .long (dfoo_mixboth2 + 64) .long (datalabel dfoo_mixboth2 + 64) .global dfoo_mixwithoutdfoo_mixwithout: .long 0 .long (dfoo_mixwithout + 42) .global dfoo_mixwithout2dfoo_mixwithout2: .long 0 .long (dfoo_mixwithout2 + 24) .section .rodata .long dfoo_mix + 4 .long datalabel dfoo_mix2 + 48 .long datalabel dfoo_mixboth + 400 .long dfoo_mixboth + 420 .long dfoo_mixboth2 + 248 .long datalabel dfoo_mixboth2 + 240 .long dfoo_mixwithout! Same as above, referencing symbol in other file (reference only from! this to other file). .text movi (datalabel dbarboth + 16) & 65535,r40 movi (dbarboth + 12) & 65535,r40 movi (dbarboth2 + 12) & 65535,r40 movi (datalabel dbarboth2 + 16) & 65535,r40 movi (dbarwithout + 24) & 65535,r30 .data .long (datalabel dbar + 8) .long datalabel dbar_other + 4 .long datalabel dbar_otherboth + 40 .long dbar_otherboth + 24 .long dbar_otherboth2 + 24 .long datalabel dbar_otherboth2 + 40 .long dbar_otherwithout .text movi (datalabel dbar_mix + 8) & 65535,r30 movi (dbar_mix2 + 8) & 65535,r30 movi (datalabel dbar_mixboth + 80) & 65535,r30 movi (dbar_mixboth + 80) & 65535,r30 movi (dbar_mixboth2 + 64) & 65535,r30 movi (datalabel dbar_mixboth2 + 64) & 65535,r30 movi (dbar_mixwithout + 42) & 65535,r30 movi (dbar_mixwithout2 + 24) & 65535,r30 .data .long dbar_mix + 4 .long datalabel dbar_mix2 + 48 .long datalabel dbar_mixboth + 400 .long dbar_mixboth + 420 .long dbar_mixboth2 + 248 .long datalabel dbar_mixboth2 + 240 .long dbar_mixwithout! Same as above, referencing symbol in other file *and* within that file. .text movi (datalabel dbazboth + 16) & 65535,r40 movi (dbazboth + 12) & 65535,r40 movi (dbazboth2 + 12) & 65535,r40 movi (datalabel dbazboth2 + 16) & 65535,r40 movi (dbazwithout + 24) & 65535,r30 .data .long (datalabel dbaz + 8) .long datalabel dbaz_other + 4 .long datalabel dbaz_otherboth + 40 .long dbaz_otherboth + 24 .long dbaz_otherboth2 + 24 .long datalabel dbaz_otherboth2 + 40 .long dbaz_otherwithout .text movi (datalabel dbaz_mix + 8) & 65535,r30 movi (dbaz_mix2 + 8) & 65535,r30 movi (datalabel dbaz_mixboth + 80) & 65535,r30 movi (dbaz_mixboth + 80) & 65535,r30 movi (dbaz_mixboth2 + 64) & 65535,r30 movi (datalabel dbaz_mixboth2 + 64) & 65535,r30 movi (dbaz_mixwithout + 42) & 65535,r30 movi (dbaz_mixwithout2 + 24) & 65535,r30 .data .long dbaz_mix + 4 .long datalabel dbaz_mix2 + 48 .long datalabel dbaz_mixboth + 400 .long dbaz_mixboth + 420 .long dbaz_mixboth2 + 248 .long datalabel dbaz_mixboth2 + 240 .long dbaz_mixwithout
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -