function-lambda-expression: Return the name of a generic function.
[sbcl.git] / src / assembly / ppc / arith.lisp
index 5f99d5a..60175d0 100644 (file)
@@ -46,7 +46,9 @@
   (lisp-return lra lip :offset 2)
 
   DO-STATIC-FUN
-  (inst lwz lip null-tn (static-fun-offset 'two-arg-+) )
+  (inst addi lexenv-tn null-tn (static-fdefn-offset 'two-arg-+))
+  (loadw code-tn lexenv-tn fdefn-fun-slot other-pointer-lowtag)
+  (loadw lip lexenv-tn fdefn-raw-addr-slot other-pointer-lowtag)
   (inst li nargs (fixnumize 2))
   (inst mr ocfp cfp-tn)
   (inst mr cfp-tn csp-tn)
@@ -94,7 +96,9 @@
   (lisp-return lra lip :offset 2)
 
   DO-STATIC-FUN
-  (inst lwz lip null-tn (static-fun-offset 'two-arg--))
+  (inst addi lexenv-tn null-tn (static-fdefn-offset 'two-arg--))
+  (loadw code-tn lexenv-tn fdefn-fun-slot other-pointer-lowtag)
+  (loadw lip lexenv-tn fdefn-raw-addr-slot other-pointer-lowtag)
   (inst li nargs (fixnumize 2))
   (inst mr ocfp cfp-tn)
   (inst mr cfp-tn csp-tn)
   (lisp-return lra lip :offset 2)
 
   DO-STATIC-FUN
-  (inst lwz lip null-tn (static-fun-offset 'two-arg-*))
+  (inst addi lexenv-tn null-tn (static-fdefn-offset 'two-arg-*))
+  (loadw code-tn lexenv-tn fdefn-fun-slot other-pointer-lowtag)
+  (loadw lip lexenv-tn fdefn-raw-addr-slot other-pointer-lowtag)
   (inst li nargs (fixnumize 2))
   (inst mr ocfp cfp-tn)
   (inst mr cfp-tn csp-tn)
           (inst beq DO-COMPARE)
 
           DO-STATIC-FN
-          (inst lwz lip null-tn (static-fun-offset ',static-fn))
+          (inst addi lexenv-tn null-tn (static-fdefn-offset ',static-fn))
+          (loadw code-tn lexenv-tn fdefn-fun-slot other-pointer-lowtag)
+          (loadw lip lexenv-tn fdefn-raw-addr-slot other-pointer-lowtag)
           (inst li nargs (fixnumize 2))
           (inst mr ocfp cfp-tn)
           (inst mr cfp-tn csp-tn)
   (lisp-return lra lip :offset 2)
 
   DO-STATIC-FN
-  (inst lwz lip null-tn (static-fun-offset 'eql))
+  (inst addi lexenv-tn null-tn (static-fdefn-offset 'eql))
+  (loadw code-tn lexenv-tn fdefn-fun-slot other-pointer-lowtag)
+  (loadw lip lexenv-tn fdefn-raw-addr-slot other-pointer-lowtag)
   (inst li nargs (fixnumize 2))
   (inst mr ocfp cfp-tn)
   (inst mr cfp-tn csp-tn)
   (lisp-return lra lip :offset 2)
 
   DO-STATIC-FN
-  (inst lwz lip null-tn (static-fun-offset 'two-arg-=))
+  (inst addi lexenv-tn null-tn (static-fdefn-offset 'two-arg-=))
+  (loadw code-tn lexenv-tn fdefn-fun-slot other-pointer-lowtag)
+  (loadw lip lexenv-tn fdefn-raw-addr-slot other-pointer-lowtag)
   (inst li nargs (fixnumize 2))
   (inst mr ocfp cfp-tn)
   (inst mr cfp-tn csp-tn)
   (lisp-return lra lip :offset 2)
 
   DO-STATIC-FN
-  (inst lwz lip null-tn (static-fun-offset 'two-arg-/=))
+  (inst addi lexenv-tn null-tn (static-fdefn-offset 'two-arg-/=))
+  (loadw code-tn lexenv-tn fdefn-fun-slot other-pointer-lowtag)
+  (loadw lip lexenv-tn fdefn-raw-addr-slot other-pointer-lowtag)
   (inst li nargs (fixnumize 2))
   (inst mr ocfp cfp-tn)
   (inst j lip 0)