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