Annotation of OpenXM_contrib/gmp/mpn/powerpc32/README, Revision 1.1
1.1 ! ohara 1: Copyright 2002 Free Software Foundation, Inc.
! 2:
! 3: This file is part of the GNU MP Library.
! 4:
! 5: The GNU MP Library is free software; you can redistribute it and/or modify
! 6: it under the terms of the GNU Lesser General Public License as published by
! 7: the Free Software Foundation; either version 2.1 of the License, or (at your
! 8: option) any later version.
! 9:
! 10: The GNU MP Library is distributed in the hope that it will be useful, but
! 11: WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
! 12: or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
! 13: License for more details.
! 14:
! 15: You should have received a copy of the GNU Lesser General Public License
! 16: along with the GNU MP Library; see the file COPYING.LIB. If not, write to
! 17: the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
! 18: 02111-1307, USA.
! 19:
! 20:
! 21:
! 22:
! 23:
! 24: POWERPC 32-BIT MPN SUBROUTINES
! 25:
! 26:
! 27: This directory contains mpn functions for various 32-bit PowerPC chips.
! 28:
! 29:
! 30: CODE ORGANIZATION
! 31:
! 32: powerpc generic, 604, 604e
! 33: powerpc/750 740, 750, 7400
! 34:
! 35:
! 36: The top-level powerpc directory is currently mostly aimed at 604/604e but
! 37: should be reasonable on all powerpcs.
! 38:
! 39:
! 40:
! 41: STATUS
! 42:
! 43: The code is quite well optimized for the 604e, other chips have had less
! 44: attention.
! 45:
! 46: Altivec SIMD available in 7400 might hold some promise, but unfortunately
! 47: GMP only guarantees 32-bit data alignment, so there's lots of fiddling
! 48: around with partial operations at the start and end of limb vectors. A
! 49: 128-bit limb would be a novel idea, but is unlikely to be practical, since
! 50: it would have to work with ordinary +, -, * etc in the C code.
! 51:
! 52:
! 53:
! 54: REGISTER NAMES
! 55:
! 56: The normal powerpc convention is to give registers as plain numbers, like
! 57: "mtctr 6", but on Apple MacOS X (powerpc*-*-rhapsody* and
! 58: powerpc*-*-darwin*) the assembler demands an "r" like "mtctr r6". Note
! 59: however when register 0 in an instruction means a literal zero the "r" is
! 60: omitted, for instance "lwzx r6,0,r7".
! 61:
! 62: The GMP code uses the "r" forms, powerpc-defs.m4 transforms them to plain
! 63: numbers according to what GMP_ASM_POWERPC_R_REGISTERS finds is needed.
! 64:
! 65:
! 66:
! 67:
! 68: REFERENCES
! 69:
! 70: PowerPC Microprocessor Family: The Programming Environments for 32-bit
! 71: Microprocessors, IBM document G522-0290-01, 2000.
! 72:
! 73: PowerPC 604e RISC Microprocessor User's Manual with Supplement for PowerPC
! 74: 604 Microprocessor, IBM document G552-0330-00, Motorola document
! 75: MPC604EUM/AD, 1998.
! 76:
! 77: MPC7400 RISC Microprocessor User's Manual, Motorola document MPC7400UM/D,
! 78: rev 0, 3/2000.
! 79:
! 80: The above are available online from
! 81:
! 82: http://chips.ibm.com/techlib/products/powerpc/manuals
! 83: http://www.mot.com/PowerPC
! 84:
! 85:
! 86:
! 87: ----------------
! 88: Local variables:
! 89: mode: text
! 90: fill-column: 76
! 91: End:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>