dbmentry.S (8023:36c59449dc93) | dbmentry.S (8024:27ce7490bd3b) |
---|---|
1/* 2 * Copyright (c) 2003, 2004 3 * The Regents of The University of Michigan 4 * All Rights Reserved 5 * 6 * This code is part of the M5 simulator, developed by Nathan Binkert, 7 * Erik Hallnor, Steve Raasch, and Steve Reinhardt, with contributions 8 * from Ron Dreslinski, Dave Greene, Lisa Hsu, Ali Saidi, and Andrew --- 67 unchanged lines hidden (view full) --- 76 call_pal PAL_WHAMI_ENTRY 77 beq v0, cpuz 78 ldq t3, m5AlphaAccess 79 addq t3,0x70,t3 # *** If offset in console alpha access struct changes 80 # This must be changed as well! 81 bis zero,8,t4 82 mulq t4,v0,t4 83 addq t3,t4,t3 | 1/* 2 * Copyright (c) 2003, 2004 3 * The Regents of The University of Michigan 4 * All Rights Reserved 5 * 6 * This code is part of the M5 simulator, developed by Nathan Binkert, 7 * Erik Hallnor, Steve Raasch, and Steve Reinhardt, with contributions 8 * from Ron Dreslinski, Dave Greene, Lisa Hsu, Ali Saidi, and Andrew --- 67 unchanged lines hidden (view full) --- 76 call_pal PAL_WHAMI_ENTRY 77 beq v0, cpuz 78 ldq t3, m5AlphaAccess 79 addq t3,0x70,t3 # *** If offset in console alpha access struct changes 80 # This must be changed as well! 81 bis zero,8,t4 82 mulq t4,v0,t4 83 addq t3,t4,t3 |
84cpuwait: ldq t4, 0(t3) | 84 ldah a0, 3(zero) # load arg0 with 65536*3 85cpuwait: .long 0x6000002 # jsr quiesceNs 86 ldq t4, 0(t3) |
85 beq t4, cpuwait 86 bis t4,t4,sp 87 88 89cpuz: bis sp,sp,s0 /* save sp */ 90 91slave: lda v0,(8*1024)(sp) /* end of page */ 92 --- 122 unchanged lines hidden (view full) --- 215 .globl SlaveSpin # Very carefully spin wait 216 .ent SlaveSpin 2 # and swap context without 217SlaveSpin: # using any stack space 218 .option O1 219 .frame sp, 0, ra 220 mov a0, t0 # cpu number 221 mov a1, t1 # cpu rpb pointer (virtual) 222 mov a2, t2 # what to spin on | 87 beq t4, cpuwait 88 bis t4,t4,sp 89 90 91cpuz: bis sp,sp,s0 /* save sp */ 92 93slave: lda v0,(8*1024)(sp) /* end of page */ 94 --- 122 unchanged lines hidden (view full) --- 217 .globl SlaveSpin # Very carefully spin wait 218 .ent SlaveSpin 2 # and swap context without 219SlaveSpin: # using any stack space 220 .option O1 221 .frame sp, 0, ra 222 mov a0, t0 # cpu number 223 mov a1, t1 # cpu rpb pointer (virtual) 224 mov a2, t2 # what to spin on |
223 224test: ldl t3, 0(t2) | 225 ldah a0, 3(zero) # load arg0 with 65536 226test: .long 0x6000002 # jsr quiesceNs # wait 65us*3 227 ldl t3, 0(t2) |
225 beq t3, test 226 zapnot t1,0x1f,a0 # make rpb physical 227 call_pal PAL_SWPCTX_ENTRY # switch to pcb 228 mov t0, a0 # setup args for SlaveCmd 229 mov t1, a1 230 jsr SlaveCmd # call SlaveCmd 231 ret zero, (ra) # Should never be reached 232 .end SlaveSpin 233 234 | 228 beq t3, test 229 zapnot t1,0x1f,a0 # make rpb physical 230 call_pal PAL_SWPCTX_ENTRY # switch to pcb 231 mov t0, a0 # setup args for SlaveCmd 232 mov t1, a1 233 jsr SlaveCmd # call SlaveCmd 234 ret zero, (ra) # Should never be reached 235 .end SlaveSpin 236 237 |