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