/[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.6.2.1 by rtoy, Sat Feb 12 16:14:15 2005 UTC revision 1.6.2.2 by rtoy, Tue Apr 5 03:41:10 2005 UTC
# Line 213  x: Line 213  x:
213          load(reg_OCFP,_current_control_frame_pointer)          load(reg_OCFP,_current_control_frame_pointer)
214    
215          /* No longer atomic, and check for interrupt */          /* No longer atomic, and check for interrupt */
216    #if 1
217          andi. reg_NL3, reg_ALLOC, 1          andi. reg_NL3, reg_ALLOC, 1
218          subi reg_ALLOC,reg_ALLOC,4          subi reg_ALLOC,reg_ALLOC,4
219          twnei reg_NL3, 0          twnei reg_NL3, 0
220    #else
221            add reg_ALLOC,reg_ALLOC,reg_NL3
222            twlti reg_ALLOC,0
223    #endif
224          /* Pass in the arguments */          /* Pass in the arguments */
225    
226          mr reg_CFP,reg_NL1          mr reg_CFP,reg_NL1
# Line 270  lra: Line 275  lra:
275          store(reg_NL1,reg_NL2,_foreign_function_call_active)          store(reg_NL1,reg_NL2,_foreign_function_call_active)
276    
277          /* Check for interrupt */          /* Check for interrupt */
278    #if 1
279          andi. reg_NL3, reg_ALLOC, 1          andi. reg_NL3, reg_ALLOC, 1
280          subi reg_ALLOC, reg_ALLOC, 4          subi reg_ALLOC, reg_ALLOC, 4
281          twnei reg_NL3,0          twnei reg_NL3,0
282    #else
283            add reg_ALLOC,reg_ALLOC,reg_NL3
284            twlti reg_ALLOC,0
285    #endif
286          /* Back to C */          /* Back to C */
287          C_FULL_EPILOG          C_FULL_EPILOG
288          blr          blr
# Line 322  lra: Line 332  lra:
332          store(reg_CSP,reg_CFUNC,_foreign_function_call_active)          store(reg_CSP,reg_CFUNC,_foreign_function_call_active)
333          /* load(reg_POLL,saver2) */          /* load(reg_POLL,saver2) */
334          /* Disable pseudo-atomic; check pending interrupt */          /* Disable pseudo-atomic; check pending interrupt */
335    #if 1
336          andi. reg_NL3, reg_ALLOC, 1          andi. reg_NL3, reg_ALLOC, 1
337          subi reg_ALLOC, reg_ALLOC, 4          subi reg_ALLOC, reg_ALLOC, 4
338          twnei reg_NL3, 0          twnei reg_NL3, 0
339    #else
340            add reg_ALLOC,reg_ALLOC,reg_NL3
341            twlti reg_ALLOC,0
342    #endif
343          mr reg_NL3,reg_NARGS          mr reg_NL3,reg_NARGS
344    
345          /* PowerOpen (i.e. OS X) requires the callee address in r12          /* PowerOpen (i.e. OS X) requires the callee address in r12
# Line 381  lra: Line 396  lra:
396          la reg_LIP,-type_OtherPointer(reg_LIP)          la reg_LIP,-type_OtherPointer(reg_LIP)
397    
398          /* No longer atomic */          /* No longer atomic */
399    #if 1
400          andi. reg_NL3, reg_ALLOC, 1          andi. reg_NL3, reg_ALLOC, 1
401          subi reg_ALLOC, reg_ALLOC, 4          subi reg_ALLOC, reg_ALLOC, 4
402          twnei reg_NL3, 0          twnei reg_NL3, 0
403    #else
404            add reg_ALLOC,reg_ALLOC,reg_NL3
405            twlti reg_ALLOC,0
406    #endif
407          mtlr reg_LIP          mtlr reg_LIP
408    
409          /* Reset the lisp stack. */          /* Reset the lisp stack. */
# Line 403  lra: Line 423  lra:
423           * The next 4 bytes are the encoding for a PPC jump instruction.           * The next 4 bytes are the encoding for a PPC jump instruction.
424           * The jump should go to the twllei instruction below.           * The jump should go to the twllei instruction below.
425           */           */
426    #if 0
427          .byte 18<<2          .byte 18<<2
428  _undefined_tramp:  _undefined_tramp:
429          .byte 0,0,24          .byte 0,0,24
430          .long _undefined_tramp          .long _undefined_tramp+1
431    #else
432            .long _xundefined_tramp + 1
433    #endif
434          .long NIL          .long NIL
435          .long NIL          .long NIL
436          .long NIL          .long NIL
437          .long NIL          .long NIL
438    #if 1
439    _undefined_tramp:
440    #endif
441          twllei reg_ZERO,trap_Cerror          twllei reg_ZERO,trap_Cerror
442          /* Number of argument bytes */          /* Number of argument bytes */
443          .byte 4          .byte 4
# Line 442  _undefined_tramp: Line 469  _undefined_tramp:
469          GFUNCDEF(xclosure_tramp)          GFUNCDEF(xclosure_tramp)
470          .globl _closure_tramp          .globl _closure_tramp
471          .byte 0,0,0,type_FunctionHeader          .byte 0,0,0,type_FunctionHeader
472    #if 0
473          .byte 18<<2          .byte 18<<2
474  _closure_tramp:  _closure_tramp:
475          .byte 0,0,24          .byte 0,0,24
476          .long _closure_tramp          .long _closure_tramp+1
477    #else
478            .long _xclosure_tramp+1
479    #endif
480          .long NIL          .long NIL
481          .long NIL          .long NIL
482          .long NIL          .long NIL
483          .long NIL          .long NIL
484    #if 1
485    _closure_tramp:
486    #endif
487  #ifdef PPC_FUN_HACK_MAYBE  #ifdef PPC_FUN_HACK_MAYBE
488          lwz reg_LEXENV,FDEFN_FUNCTION_OFFSET(reg_CNAME)          lwz reg_LEXENV,FDEFN_FUNCTION_OFFSET(reg_CNAME)
489  #else  #else
# Line 488  _closure_tramp: Line 522  _closure_tramp:
522          blr          blr
523          SET_SIZE(ppc_flush_cache_line)          SET_SIZE(ppc_flush_cache_line)
524    
525            GFUNCDEF(do_pending_interrupt)
526            .long 0
527            SET_SIZE(do_pending_interrupt)
528    
529  #ifdef LINKAGE_TABLE  #ifdef LINKAGE_TABLE
530  /*  /*
531   * Call into C code to resolve a linkage entry.   * Call into C code to resolve a linkage entry.

Legend:
Removed from v.1.6.2.1  
changed lines
  Added in v.1.6.2.2

  ViewVC Help
Powered by ViewVC 1.1.5