equal
deleted
inserted
replaced
88 { |
88 { |
89 GET_RWNO_TID(,r0); |
89 GET_RWNO_TID(,r0); |
90 asm("nop "); |
90 asm("nop "); |
91 asm("nop "); |
91 asm("nop "); |
92 asm("nop "); |
92 asm("nop "); |
93 asm("ldr r0, [r0, #%a0]" : : "i" _FOFF(TSubScheduler,iSSX.iLocalTimerAddr)); |
93 asm("ldr r0, [r0, #%a0]" : : "i" _FOFF(TSubScheduler,i_LocalTimerAddr)); |
94 asm("nop "); |
94 asm("nop "); |
95 asm("nop "); |
95 asm("nop "); |
96 asm("nop "); |
96 asm("nop "); |
97 __JUMP(,lr); |
97 __JUMP(,lr); |
98 } |
98 } |
101 { |
101 { |
102 GET_RWNO_TID(,r0); |
102 GET_RWNO_TID(,r0); |
103 asm("nop "); |
103 asm("nop "); |
104 asm("nop "); |
104 asm("nop "); |
105 asm("nop "); |
105 asm("nop "); |
106 asm("ldr r1, [r0, #%a0]" : : "i" _FOFF(TSubScheduler,iSSX.iLocalTimerAddr)); |
106 asm("ldr r1, [r0, #%a0]" : : "i" _FOFF(TSubScheduler,i_LocalTimerAddr)); |
107 asm("nop "); |
107 asm("nop "); |
108 asm("nop "); |
108 asm("nop "); |
109 asm("nop "); |
109 asm("nop "); |
110 asm("ldr r0, [r1, #%a0]" : : "i" _FOFF(ArmLocalTimer,iTimerCount)); |
110 asm("ldr r0, [r1, #%a0]" : : "i" _FOFF(ArmLocalTimer,iTimerCount)); |
111 asm("cmp r0, #0 "); |
111 asm("cmp r0, #0 "); |
116 { |
116 { |
117 GET_RWNO_TID(,r0); |
117 GET_RWNO_TID(,r0); |
118 asm("nop "); |
118 asm("nop "); |
119 asm("nop "); |
119 asm("nop "); |
120 asm("nop "); |
120 asm("nop "); |
121 asm("ldr r1, [r0, #%a0]" : : "i" _FOFF(TSubScheduler,iSSX.iLocalTimerAddr)); |
121 asm("ldr r1, [r0, #%a0]" : : "i" _FOFF(TSubScheduler,i_LocalTimerAddr)); |
122 asm("nop "); |
122 asm("nop "); |
123 asm("nop "); |
123 asm("nop "); |
124 asm("nop "); |
124 asm("nop "); |
125 asm("ldr r0, [r1, #%a0]" : : "i" _FOFF(ArmLocalTimer,iTimerCount)); |
125 asm("ldr r0, [r1, #%a0]" : : "i" _FOFF(ArmLocalTimer,iTimerCount)); |
126 asm("str r0, [r1, #%a0]" : : "i" _FOFF(ArmLocalTimer,iTimerCount)); |
126 asm("str r0, [r1, #%a0]" : : "i" _FOFF(ArmLocalTimer,iTimerCount)); |
131 { |
131 { |
132 GET_RWNO_TID(,r0); |
132 GET_RWNO_TID(,r0); |
133 asm("nop "); |
133 asm("nop "); |
134 asm("nop "); |
134 asm("nop "); |
135 asm("nop "); |
135 asm("nop "); |
136 asm("ldr r1, [r0, #%a0]" : : "i" _FOFF(TSubScheduler,iSSX.iLocalTimerAddr)); |
136 asm("ldr r1, [r0, #%a0]" : : "i" _FOFF(TSubScheduler,i_LocalTimerAddr)); |
137 asm("nop "); |
137 asm("nop "); |
138 asm("nop "); |
138 asm("nop "); |
139 asm("nop "); |
139 asm("nop "); |
140 asm("ldr r0, [r1, #%a0]!" : : "i" _FOFF(ArmLocalTimer,iTimerCount)); |
140 asm("ldr r0, [r1, #%a0]!" : : "i" _FOFF(ArmLocalTimer,iTimerCount)); |
141 asm("swp r0, r0, [r1] "); |
141 asm("swp r0, r0, [r1] "); |