Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VMS_impls > VMS__MC_shared_impl
comparison MasterLoop.c @ 66:bf08108405cc
Added recycle pool -- will merge later -- need to get PLDI results for now
| author | Me |
|---|---|
| date | Mon, 15 Nov 2010 12:11:24 -0800 |
| parents | 3bac84e4e56e |
| children | a6c442d52590 9c3107044f86 |
comparison
equal
deleted
inserted
replaced
| 16:1c7bfb48cc44 | 18:02ee9d62f45e |
|---|---|
| 168 | 168 |
| 169 #ifdef MEAS__TIME_MASTER | 169 #ifdef MEAS__TIME_MASTER |
| 170 saveLowTimeStampCountInto( masterPr->endMasterTSCLow ); | 170 saveLowTimeStampCountInto( masterPr->endMasterTSCLow ); |
| 171 #endif | 171 #endif |
| 172 | 172 |
| 173 | 173 |
| 174 masterSwitchToCoreLoop( masterPr ) | 174 |
| 175 /* VirtProcr offsets: | |
| 176 * 0xc stackPtr | |
| 177 * 0x10 framePtr | |
| 178 * 0x14 nextInstrPt | |
| 179 * 0x1c coreLoopFramePtr | |
| 180 * 0x20 coreLoopStackPtr | |
| 181 * | |
| 182 * _VMSMasterEnv offsets: | |
| 183 * 0x24 coreLoopStartPt | |
| 184 * 0x28 coreLoopEndPt | |
| 185 * 0x30 masterLock | |
| 186 */ | |
| 187 // masterSwitchToCoreLoop( masterPr ) | |
| 188 asm volatile("movl %0, %%ebx; \ | |
| 189 movl %1, %%ecx; \ | |
| 190 movl %%esp, 0x0c(%%ecx); \ | |
| 191 movl %%ebp, 0x10(%%ecx); \ | |
| 192 movl 0x24(%%ebx), %%eax; \ | |
| 193 movl 0x20(%%ecx), %%esp; \ | |
| 194 movl 0x1c(%%ecx), %%ebp; \ | |
| 195 movl $0x0, 0x30(%%ebx); \ | |
| 196 jmp %%eax" \ | |
| 197 /* outputs */ : \ | |
| 198 /* inputs */ : "g"(_VMSMasterEnv), "g"(masterPr) \ | |
| 199 /* clobber */ : "memory", "%eax", "%ebx", "%ecx", "%edx", "%edi", "%esi" \ | |
| 200 ); | |
| 201 | |
| 175 } | 202 } |
| 176 | 203 |
| 177 | 204 |
| 178 | 205 |
| 179 /*This has a race condition -- the coreloops are accessing their own queues | 206 /*This has a race condition -- the coreloops are accessing their own queues |
