Index: /trunk/source/level-0/PPC/PPC64/ppc64-bignum.lisp
===================================================================
--- /trunk/source/level-0/PPC/PPC64/ppc64-bignum.lisp	(revision 13417)
+++ /trunk/source/level-0/PPC/PPC64/ppc64-bignum.lisp	(revision 13418)
@@ -339,2 +339,41 @@
 
 
+;;; Do LOGIOR on the N 32-bit words in A and B, storing the result in
+;;; C.  (It's legal and desirable to do this more than 32 bits at a time.)
+
+(defppclapfunction %bignum-logior ((n 0) #|ra 0|# (a arg_x) (b arg_y) (c arg_z))
+  (vpop imm0)
+  (srwi. imm0 imm0 1)
+  (la imm2 ppc64::misc-data-offset imm0)
+  (b @test)
+  @loop
+  (cmpwi imm0 4)
+  (lwzx imm1 a imm3)
+  (lwzx imm2 b imm3)
+  (or imm1 imm1 imm2)
+  (stwx imm1 c imm3)
+  (subi imm0 imm0 4)
+  @test
+  (bne @loop)
+  (blr))
+
+
+
+;;; Do LOGAND on the N 32-bit words in A and B, storing the result in
+;;; C.  (It's legal and desirable to do this more than 32 bits at a time.)
+
+(defppclapfunction %bignum-logand ((n 0) #|ra 0|# (a arg_x) (b arg_y) (c arg_z))
+  (vpop imm0)
+  (srwi. imm0 imm0 1)
+  (la imm2 ppc64::misc-data-offset imm0)
+  (b @test)
+  @loop
+  (cmpwi imm0 4)
+  (lwzx imm1 a imm3)
+  (lwzx imm2 b imm3)
+  (and imm1 imm1 imm2)
+  (stwx imm1 c imm3)
+  (subi imm0 imm0 4)
+  @test
+  (bne @loop)
+  (blr))
