1 ! Relative linking. Like the simple test, but mixing in use of 2 ! "datalabel" and offsets to the global symbols into the previous 3 ! combinations. 4 ! 5 ! More systematic testing datalabel references, 6 ! igoring section difference, symbol definition type and offset presence: 7 ! Datalabel reference plus: 8 ! (datalabel other file, other file, same file, none) 9 ! = (1, 2, 3, 4, 12, 13, 23, 123) 10 ! 11 ! Definition: 12 ! (none, same file, other file) = (a, b, c) 13 ! 14 ! Combined: 15 ! = (a1, a2, a3, a4, a12, a13, a23, a123, b1, b2, b3, b4, b12, 16 ! b13, b23, b123, c1, c2, c3, c4, c12, c13, c23, c123) 17 18 .mode SHmedia 19 .text 20 .global start 21 start: 22 nop 23 .global file1text1 24 file1text1: 25 nop 26 movi file1text1 & 65535,r10 27 .global file1text2 28 file1text2: 29 movi (datalabel file1data2) & 65535,r20 30 .global file1text3 31 file1text3: 32 movi file2text3 & 65535,r20 33 .global file1text4 34 file1text4: 35 movi file2data4 & 65535,r20 36 .global file1text5 37 file1text5: 38 movi unresolved1 & 65535,r40 39 .global b1 40 b1: 41 movi unresolved6 & 65535,r30 42 .global b2 43 b2: 44 movi (datalabel file1text1) & 65535,r10 45 .global b3 46 b3: 47 movi (datalabel file1text1 + 24) & 65535,r10 48 .global b4 49 b4: 50 movi (datalabel file1text5 + 8) & 65535, r40 51 .global b12 52 b12: 53 movi (datalabel file1data2 + 48) & 65535,r20 54 .global b13 55 b13: 56 movi file1data2 & 65535,r20 57 .global b23 58 b23: 59 movi (datalabel file2data4 + 16),r50 60 .global b123 61 b123: 62 movi (datalabel unresolved7) & 65535,r60 63 .global oc1 64 oc1: 65 movi (datalabel unresolved1) & 65535,r60 66 .global oc2 67 oc2: 68 nop 69 .global oc3 70 oc3: 71 nop 72 .global oc4 73 oc4: 74 nop 75 .global oc12 76 oc12: 77 nop 78 .global oc13 79 oc13: 80 nop 81 .global oc23 82 oc23: 83 nop 84 .global oc123 85 oc123: 86 nop 87 88 .data 89 .long 0 90 .global file1data1 91 file1data1: 92 .long 0 93 .long datalabel file1data1 + 8 94 .global file1data2 95 file1data2: 96 .long file1text2 97 .global file1data3 98 file1data3: 99 .long file2data3 100 .global file1data4 101 file1data4: 102 .long file2text4 103 .global file1data5 104 file1data5: 105 .long unresolved2 106 .long unresolved5 107 .long datalabel unresolved6 + 40 108 .long unresolved9 109 110 .long datalabel a1 111 .long a23 112 .long b123 113 .long c3 114 .long c13 115 .long datalabel a2 116 .long datalabel a3 117 .long datalabel a4 118 .long datalabel a12 119 .long datalabel a13 120 .long datalabel a23 121 .long datalabel a123 122 .long datalabel b1 123 .long datalabel b2 124 .long a3 125 .long a13 126 .long datalabel b3 127 .long datalabel b4 128 .long datalabel b12 129 .long datalabel b13 130 .long a123 131 .long b3 132 .long b13 133 .long b23 134 .long datalabel b23 135 .long datalabel b123 136 .long datalabel c1 137 .long datalabel c2 138 .long datalabel c3 139 .long c23 140 .long c123 141 .long datalabel c4 142 .long datalabel c12 143 .long datalabel c13 144 .long datalabel c23 145 .long datalabel c123 146 147 148 .long datalabel oa1 149 .long datalabel ob1 150 .long ob123 151 .long datalabel oc1 152 .long oa2 153 .long ob2 154 .long oc2 155 .long oa12 156 .long datalabel oa12 157 .long datalabel ob12 158 .long ob12 159 .long datalabel oc12 160 .long oc12 161 .long oa23 162 .long datalabel oa13 163 .long oc123 164 .long datalabel ob13 165 .long datalabel oc13 166 .long ob23 167 .long oc23 168 .long oa123 169 .long datalabel oa123 170 .long datalabel ob123 171 .long datalabel oc123 172