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