1 ! Check that shift expressions translate to the proper reloc for MOVI and 2 ! SHORI for local and external symbols. This is the 32-bit subset. 3 .text 4 .mode SHmedia 5 start: 6 movi localsym & 65535,r4 7 movi (localsym >> 0) & 65535,r4 8 movi (localsym >> 16) & 65535,r4 9 10 movi externsym & 65535,r4 11 movi (externsym >> 0) & 65535,r4 12 movi (externsym >> 16) & 65535,r4 13 14 shori localsym & 65535,r4 15 shori (localsym >> 0) & 65535,r4 16 shori (localsym >> 16) & 65535,r4 17 18 shori externsym & 65535,r4 19 shori (externsym >> 0) & 65535,r4 20 shori (externsym >> 16) & 65535,r4 21 22 movi (localsym + 42) & 65535,r4 23 movi ((localsym + 43) >> 0) & 65535,r4 24 movi ((localsym + 44) >> 16) & 65535,r4 25 26 movi (externsym + 45) & 65535,r4 27 movi ((externsym + 46) >> 0) & 65535,r4 28 movi ((externsym + 47) >> 16) & 65535,r4 29 30 shori (localsym + 42) & 65535,r4 31 shori ((localsym + 43) >> 0) & 65535,r4 32 shori ((localsym + 44) >> 16) & 65535,r4 33 34 shori (externsym + 45) & 65535,r4 35 shori ((externsym + 46) >> 0) & 65535,r4 36 shori ((externsym + 47) >> 16) & 65535,r4 37 38 .data 39 ! Just make localsym have a non-zero offset into .data. 40 .long 0 41 localsym: 42 .long 0 43