/[cmucl]/src/lisp/ppc-assem.S
ViewVC logotype

Diff of /src/lisp/ppc-assem.S

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.9 by rtoy, Fri Apr 8 04:11:02 2005 UTC revision 1.10 by rtoy, Sat Apr 16 02:03:22 2005 UTC
# Line 203  x: Line 203  x:
203    
204          /* Turn on pseudo-atomic */          /* Turn on pseudo-atomic */
205    
206    #if 0
207          li reg_NL3,-4          li reg_NL3,-4
208    #endif
209          li reg_ALLOC,4          li reg_ALLOC,4
210          store(reg_ZERO,reg_NL4,_foreign_function_call_active)          store(reg_ZERO,reg_NL4,_foreign_function_call_active)
211          load(reg_NL4,_current_dynamic_space_free_pointer)          load(reg_NL4,_current_dynamic_space_free_pointer)
# Line 213  x: Line 215  x:
215          load(reg_OCFP,_current_control_frame_pointer)          load(reg_OCFP,_current_control_frame_pointer)
216    
217          /* No longer atomic, and check for interrupt */          /* No longer atomic, and check for interrupt */
218          add reg_ALLOC,reg_ALLOC,reg_NL3          andi. reg_NL3, reg_ALLOC, 1
219          twlti reg_ALLOC,0          subi reg_ALLOC,reg_ALLOC,4
220            twnei reg_NL3, 0
221    
222          /* Pass in the arguments */          /* Pass in the arguments */
223    
224          mr reg_CFP,reg_NL1          mr reg_CFP,reg_NL1
# Line 270  lra: Line 273  lra:
273          store(reg_NL1,reg_NL2,_foreign_function_call_active)          store(reg_NL1,reg_NL2,_foreign_function_call_active)
274    
275          /* Check for interrupt */          /* Check for interrupt */
276          add reg_ALLOC,reg_ALLOC,reg_NL3          andi. reg_NL3, reg_ALLOC, 1
277          twlti reg_ALLOC,0          subi reg_ALLOC, reg_ALLOC, 4
278            twnei reg_NL3,0
279    
280          /* Back to C */          /* Back to C */
281          C_FULL_EPILOG          C_FULL_EPILOG
282          blr          blr
# Line 301  lra: Line 305  lra:
305          mr reg_NARGS,reg_NL3          mr reg_NARGS,reg_NL3
306    
307          /* Turn on pseudo-atomic */          /* Turn on pseudo-atomic */
308    #if 0
309          li reg_NL3,-4          li reg_NL3,-4
310    #endif
311          la reg_ALLOC,4(reg_ALLOC)          la reg_ALLOC,4(reg_ALLOC)
312    
313          /* Convert the return address to an offset and save it on the stack. */          /* Convert the return address to an offset and save it on the stack. */
# Line 322  lra: Line 328  lra:
328          store(reg_CSP,reg_CFUNC,_foreign_function_call_active)          store(reg_CSP,reg_CFUNC,_foreign_function_call_active)
329          /* load(reg_POLL,saver2) */          /* load(reg_POLL,saver2) */
330          /* Disable pseudo-atomic; check pending interrupt */          /* Disable pseudo-atomic; check pending interrupt */
331          add reg_ALLOC,reg_ALLOC,reg_NL3          andi. reg_NL3, reg_ALLOC, 1
332          twlti reg_ALLOC,0          subi reg_ALLOC, reg_ALLOC, 4
333            twnei reg_NL3, 0
334    
335          mr reg_NL3,reg_NARGS          mr reg_NL3,reg_NARGS
336    
337          /* PowerOpen (i.e. OS X) requires the callee address in r12          /* PowerOpen (i.e. OS X) requires the callee address in r12
# Line 357  lra: Line 365  lra:
365          li reg_LIP,0          li reg_LIP,0
366    
367          /* Atomic ... */          /* Atomic ... */
368    #if 0
369          li reg_NL3,-4          li reg_NL3,-4
370    #endif
371          li reg_ALLOC,4          li reg_ALLOC,4
372    
373          /* No long in foreign function call. */          /* No long in foreign function call. */
# Line 380  lra: Line 390  lra:
390          la reg_LIP,-type_OtherPointer(reg_LIP)          la reg_LIP,-type_OtherPointer(reg_LIP)
391    
392          /* No longer atomic */          /* No longer atomic */
393          add reg_ALLOC,reg_ALLOC,reg_NL3          andi. reg_NL3, reg_ALLOC, 1
394          twlti reg_ALLOC,0          subi reg_ALLOC, reg_ALLOC, 4
395            twnei reg_NL3, 0
396    
397          mtlr reg_LIP          mtlr reg_LIP
398    
399          /* Reset the lisp stack. */          /* Reset the lisp stack. */

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.5