Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Dec 2012 13:00:20 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r244677 - in projects/calloutng: . bin/date contrib/binutils/bfd contrib/gdb/gdb contrib/libc-vis contrib/libstdc++/include/std contrib/llvm/include/llvm/MC contrib/llvm/lib/ExecutionEn...
Message-ID:  <201212251300.qBPD0K7N058879@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Tue Dec 25 13:00:19 2012
New Revision: 244677
URL: http://svnweb.freebsd.org/changeset/base/244677

Log:
  MFC @ r244676

Added:
  projects/calloutng/contrib/libc-vis/
     - copied from r244676, head/contrib/libc-vis/
  projects/calloutng/contrib/mknod/
     - copied from r244676, head/contrib/mknod/
  projects/calloutng/contrib/mtree/
     - copied from r244676, head/contrib/mtree/
  projects/calloutng/lib/libc/gen/unvis-compat.c
     - copied unchanged from r244676, head/lib/libc/gen/unvis-compat.c
  projects/calloutng/lib/libnetbsd/
     - copied from r244676, head/lib/libnetbsd/
  projects/calloutng/lib/libstand/amd64/
     - copied from r244676, head/lib/libstand/amd64/
  projects/calloutng/sys/arm/arm/cpufunc_asm_arm11x6.S
     - copied unchanged from r244676, head/sys/arm/arm/cpufunc_asm_arm11x6.S
  projects/calloutng/sys/boot/ficl64/
     - copied from r244676, head/sys/boot/ficl64/
  projects/calloutng/sys/kern/subr_busdma_bufalloc.c
     - copied unchanged from r244676, head/sys/kern/subr_busdma_bufalloc.c
  projects/calloutng/sys/sys/busdma_bufalloc.h
     - copied unchanged from r244676, head/sys/sys/busdma_bufalloc.h
  projects/calloutng/tools/regression/usr.bin/printf/regress.zero.out
     - copied unchanged from r244676, head/tools/regression/usr.bin/printf/regress.zero.out
  projects/calloutng/usr.sbin/nmtree/
     - copied from r244676, head/usr.sbin/nmtree/
Deleted:
  projects/calloutng/include/vis.h
  projects/calloutng/lib/libc/gen/unvis.3
  projects/calloutng/lib/libc/gen/unvis.c
  projects/calloutng/lib/libc/gen/vis.3
  projects/calloutng/lib/libc/gen/vis.c
  projects/calloutng/sys/boot/userboot/libstand/amd64/
Modified:
  projects/calloutng/UPDATING
  projects/calloutng/bin/date/netdate.c
  projects/calloutng/contrib/binutils/bfd/elflink.c
  projects/calloutng/contrib/gdb/gdb/dwarf2read.c
  projects/calloutng/contrib/gdb/gdb/gdbtypes.c
  projects/calloutng/contrib/gdb/gdb/gdbtypes.h
  projects/calloutng/contrib/gdb/gdb/hpread.c
  projects/calloutng/contrib/gdb/gdb/parse.c
  projects/calloutng/contrib/gdb/gdb/stabsread.c
  projects/calloutng/contrib/libstdc++/include/std/std_limits.h
  projects/calloutng/contrib/llvm/include/llvm/MC/MCExpr.h
  projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
  projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
  projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
  projects/calloutng/contrib/llvm/lib/MC/MCExpr.cpp
  projects/calloutng/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp
  projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
  projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h
  projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
  projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h
  projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
  projects/calloutng/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td
  projects/calloutng/contrib/llvm/lib/Target/Mips/MipsCodeEmitter.cpp
  projects/calloutng/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
  projects/calloutng/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td
  projects/calloutng/contrib/llvm/lib/Target/Mips/MipsJITInfo.cpp
  projects/calloutng/contrib/llvm/lib/Target/Mips/MipsJITInfo.h
  projects/calloutng/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp
  projects/calloutng/contrib/llvm/lib/Transforms/Scalar/SROA.cpp
  projects/calloutng/contrib/llvm/tools/clang/include/clang/Sema/Scope.h
  projects/calloutng/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
  projects/calloutng/contrib/llvm/tools/clang/lib/Basic/Version.cpp
  projects/calloutng/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp
  projects/calloutng/contrib/llvm/tools/clang/lib/Driver/ToolChains.h
  projects/calloutng/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
  projects/calloutng/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp
  projects/calloutng/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp
  projects/calloutng/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp
  projects/calloutng/contrib/xz/AUTHORS
  projects/calloutng/contrib/xz/ChangeLog
  projects/calloutng/contrib/xz/README
  projects/calloutng/contrib/xz/THANKS
  projects/calloutng/contrib/xz/po/de.po
  projects/calloutng/contrib/xz/po/fr.po
  projects/calloutng/contrib/xz/po/it.po
  projects/calloutng/contrib/xz/po/pl.po
  projects/calloutng/contrib/xz/src/common/sysdefs.h
  projects/calloutng/contrib/xz/src/liblzma/api/lzma/version.h
  projects/calloutng/contrib/xz/src/liblzma/simple/simple_coder.c
  projects/calloutng/contrib/xz/src/liblzma/simple/simple_private.h
  projects/calloutng/contrib/xz/src/xz/args.c
  projects/calloutng/contrib/xz/src/xz/coder.c
  projects/calloutng/contrib/xz/src/xz/message.c
  projects/calloutng/contrib/xz/src/xz/xz.1
  projects/calloutng/etc/defaults/rc.conf
  projects/calloutng/etc/login.conf
  projects/calloutng/etc/newsyslog.conf
  projects/calloutng/etc/periodic/daily/Makefile
  projects/calloutng/gnu/lib/libgcc/Makefile
  projects/calloutng/gnu/usr.bin/binutils/as/Makefile
  projects/calloutng/include/Makefile
  projects/calloutng/lib/Makefile
  projects/calloutng/lib/clang/include/clang/Basic/Version.inc
  projects/calloutng/lib/libc/gen/Makefile.inc
  projects/calloutng/lib/libc/gen/Symbol.map
  projects/calloutng/lib/libc/gen/check_utility_compat.c
  projects/calloutng/lib/libc/iconv/citrus_mmap.c
  projects/calloutng/lib/libc/nls/msgcat.c
  projects/calloutng/lib/libcompiler_rt/Makefile
  projects/calloutng/lib/libnetgraph/sock.c
  projects/calloutng/release/picobsd/build/picobsd
  projects/calloutng/sbin/hastd/parse.y
  projects/calloutng/sbin/ifconfig/af_nd6.c
  projects/calloutng/sbin/ifconfig/ifconfig.c
  projects/calloutng/sbin/route/route.c
  projects/calloutng/sbin/savecore/savecore.8
  projects/calloutng/sbin/savecore/savecore.c
  projects/calloutng/sbin/setkey/setkey.8
  projects/calloutng/share/i18n/csmapper/Makefile.part
  projects/calloutng/share/man/man4/arcmsr.4
  projects/calloutng/share/man/man9/lock.9
  projects/calloutng/share/man/man9/make_dev.9
  projects/calloutng/share/misc/committers-src.dot
  projects/calloutng/share/mk/bsd.lib.mk
  projects/calloutng/share/mk/bsd.own.mk
  projects/calloutng/share/mk/sys.mk
  projects/calloutng/sys/arm/arm/busdma_machdep-v6.c
  projects/calloutng/sys/arm/arm/busdma_machdep.c
  projects/calloutng/sys/arm/arm/cpufunc.c
  projects/calloutng/sys/arm/arm/elf_trampoline.c
  projects/calloutng/sys/arm/arm/identcpu.c
  projects/calloutng/sys/arm/arm/locore.S
  projects/calloutng/sys/arm/arm/pmap-v6.c
  projects/calloutng/sys/arm/arm/pmap.c
  projects/calloutng/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
  projects/calloutng/sys/arm/broadcom/bcm2835/files.bcm2835
  projects/calloutng/sys/arm/conf/PANDABOARD
  projects/calloutng/sys/arm/conf/RPI-B
  projects/calloutng/sys/arm/conf/VERSATILEPB
  projects/calloutng/sys/arm/include/armreg.h
  projects/calloutng/sys/arm/include/cpuconf.h
  projects/calloutng/sys/arm/include/cpufunc.h
  projects/calloutng/sys/arm/include/intr.h
  projects/calloutng/sys/arm/include/pmap.h
  projects/calloutng/sys/arm/include/vm.h
  projects/calloutng/sys/arm/versatile/files.versatile
  projects/calloutng/sys/boot/ficl/Makefile
  projects/calloutng/sys/boot/i386/efi/ldscript.amd64
  projects/calloutng/sys/boot/userboot/libstand/Makefile
  projects/calloutng/sys/cam/scsi/scsi_enc_ses.c
  projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
  projects/calloutng/sys/cddl/dev/dtrace/dtrace_debug.c
  projects/calloutng/sys/conf/files
  projects/calloutng/sys/conf/files.arm
  projects/calloutng/sys/conf/options.arm
  projects/calloutng/sys/dev/ale/if_ale.c
  projects/calloutng/sys/dev/arcmsr/arcmsr.c
  projects/calloutng/sys/dev/arcmsr/arcmsr.h
  projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
  projects/calloutng/sys/dev/atkbdc/psm.c
  projects/calloutng/sys/dev/cxgbe/t4_l2t.c
  projects/calloutng/sys/dev/cxgbe/t4_main.c
  projects/calloutng/sys/dev/ixgbe/ixgbe.c
  projects/calloutng/sys/dev/ixgbe/ixgbe.h
  projects/calloutng/sys/dev/mii/brgphy.c
  projects/calloutng/sys/dev/mii/miidevs
  projects/calloutng/sys/dev/netmap/ixgbe_netmap.h
  projects/calloutng/sys/dev/nvme/nvme.c
  projects/calloutng/sys/dev/nvme/nvme_ctrlr.c
  projects/calloutng/sys/dev/nvme/nvme_private.h
  projects/calloutng/sys/dev/nvme/nvme_test.c
  projects/calloutng/sys/dev/sound/usb/uaudio.c
  projects/calloutng/sys/dev/usb/serial/usb_serial.c
  projects/calloutng/sys/dev/usb/serial/usb_serial.h
  projects/calloutng/sys/dev/usb/storage/umass.c
  projects/calloutng/sys/dev/usb/storage/ustorage_fs.c
  projects/calloutng/sys/dev/usb/usb_busdma.c
  projects/calloutng/sys/dev/usb/usb_msctest.c
  projects/calloutng/sys/dev/usb/usb_transfer.c
  projects/calloutng/sys/dev/usb/usbdi.h
  projects/calloutng/sys/dev/usb/wlan/if_uath.c
  projects/calloutng/sys/dev/usb/wlan/if_uathvar.h
  projects/calloutng/sys/dev/usb/wlan/if_upgt.c
  projects/calloutng/sys/dev/usb/wlan/if_upgtvar.h
  projects/calloutng/sys/dev/usb/wlan/if_urtw.c
  projects/calloutng/sys/dev/usb/wlan/if_urtwvar.h
  projects/calloutng/sys/dev/wtap/if_wtap.c
  projects/calloutng/sys/fs/devfs/devfs_vnops.c
  projects/calloutng/sys/fs/ext2fs/ext2_dinode.h
  projects/calloutng/sys/fs/ext2fs/ext2_inode_cnv.c
  projects/calloutng/sys/fs/ext2fs/ext2_vfsops.c
  projects/calloutng/sys/fs/ext2fs/ext2fs.h
  projects/calloutng/sys/geom/label/g_label.c
  projects/calloutng/sys/kern/kern_conf.c
  projects/calloutng/sys/kern/kern_descrip.c
  projects/calloutng/sys/kern/kern_jail.c
  projects/calloutng/sys/kern/kern_lock.c
  projects/calloutng/sys/kern/kern_mutex.c
  projects/calloutng/sys/kern/kern_priv.c
  projects/calloutng/sys/kern/kern_rmlock.c
  projects/calloutng/sys/kern/kern_rwlock.c
  projects/calloutng/sys/kern/kern_sig.c
  projects/calloutng/sys/kern/kern_sx.c
  projects/calloutng/sys/kern/subr_smp.c
  projects/calloutng/sys/kern/subr_syscall.c
  projects/calloutng/sys/kern/sys_generic.c
  projects/calloutng/sys/kern/vfs_bio.c
  projects/calloutng/sys/kern/vfs_mount.c
  projects/calloutng/sys/kern/vfs_subr.c
  projects/calloutng/sys/kgssapi/gss_accept_sec_context.c
  projects/calloutng/sys/kgssapi/gss_acquire_cred.c
  projects/calloutng/sys/kgssapi/gss_canonicalize_name.c
  projects/calloutng/sys/kgssapi/gss_delete_sec_context.c
  projects/calloutng/sys/kgssapi/gss_display_status.c
  projects/calloutng/sys/kgssapi/gss_export_name.c
  projects/calloutng/sys/kgssapi/gss_impl.c
  projects/calloutng/sys/kgssapi/gss_import_name.c
  projects/calloutng/sys/kgssapi/gss_init_sec_context.c
  projects/calloutng/sys/kgssapi/gss_pname_to_uid.c
  projects/calloutng/sys/kgssapi/gss_release_cred.c
  projects/calloutng/sys/kgssapi/gss_release_name.c
  projects/calloutng/sys/kgssapi/gss_set_cred_option.c
  projects/calloutng/sys/kgssapi/gssapi_impl.h
  projects/calloutng/sys/mips/include/param.h
  projects/calloutng/sys/net/if_bridge.c
  projects/calloutng/sys/net80211/ieee80211_hostap.c
  projects/calloutng/sys/net80211/ieee80211_proto.c
  projects/calloutng/sys/netinet/in.c
  projects/calloutng/sys/netinet/tcp_input.c
  projects/calloutng/sys/netinet6/ip6_output.c
  projects/calloutng/sys/netinet6/ip6_var.h
  projects/calloutng/sys/netpfil/ipfw/ip_fw2.c
  projects/calloutng/sys/netpfil/ipfw/ip_fw_dynamic.c
  projects/calloutng/sys/netpfil/ipfw/ip_fw_log.c
  projects/calloutng/sys/netpfil/ipfw/ip_fw_private.h
  projects/calloutng/sys/netpfil/pf/pf.c
  projects/calloutng/sys/netpfil/pf/pf_norm.c
  projects/calloutng/sys/sys/file.h
  projects/calloutng/sys/sys/ktr.h
  projects/calloutng/sys/tools/vnode_if.awk
  projects/calloutng/sys/ufs/ffs/ffs_softdep.c
  projects/calloutng/sys/vm/uma_int.h
  projects/calloutng/sys/vm/vm.h
  projects/calloutng/sys/vm/vm_map.c
  projects/calloutng/sys/vm/vm_mmap.c
  projects/calloutng/sys/vm/vm_unix.c
  projects/calloutng/tools/build/mk/OptionalObsoleteFiles.inc
  projects/calloutng/tools/regression/usr.bin/printf/regress.sh
  projects/calloutng/tools/tools/netrate/netreceive/Makefile
  projects/calloutng/tools/tools/netrate/netreceive/netreceive.c
  projects/calloutng/usr.bin/clang/clang/clang.1
  projects/calloutng/usr.bin/grep/grep.c
  projects/calloutng/usr.bin/grep/grep.h
  projects/calloutng/usr.bin/grep/util.c
  projects/calloutng/usr.bin/indent/indent_globs.h
  projects/calloutng/usr.bin/printf/printf.c
  projects/calloutng/usr.bin/sort/sort.c
  projects/calloutng/usr.bin/sort/sort.h
  projects/calloutng/usr.sbin/Makefile
  projects/calloutng/usr.sbin/acpi/acpidump/acpi.c
  projects/calloutng/usr.sbin/acpi/acpidump/acpidump.8
  projects/calloutng/usr.sbin/bsdconfig/bsdconfig
  projects/calloutng/usr.sbin/bsdconfig/console/console
  projects/calloutng/usr.sbin/bsdconfig/console/font
  projects/calloutng/usr.sbin/bsdconfig/console/keymap
  projects/calloutng/usr.sbin/bsdconfig/console/repeat
  projects/calloutng/usr.sbin/bsdconfig/console/saver
  projects/calloutng/usr.sbin/bsdconfig/console/screenmap
  projects/calloutng/usr.sbin/bsdconfig/console/ttys
  projects/calloutng/usr.sbin/bsdconfig/diskmgmt/diskmgmt
  projects/calloutng/usr.sbin/bsdconfig/docsinstall/docsinstall
  projects/calloutng/usr.sbin/bsdconfig/dot/dot
  projects/calloutng/usr.sbin/bsdconfig/examples/bsdconfigrc
  projects/calloutng/usr.sbin/bsdconfig/mouse/disable
  projects/calloutng/usr.sbin/bsdconfig/mouse/enable
  projects/calloutng/usr.sbin/bsdconfig/mouse/flags
  projects/calloutng/usr.sbin/bsdconfig/mouse/mouse
  projects/calloutng/usr.sbin/bsdconfig/mouse/port
  projects/calloutng/usr.sbin/bsdconfig/mouse/type
  projects/calloutng/usr.sbin/bsdconfig/networking/defaultrouter
  projects/calloutng/usr.sbin/bsdconfig/networking/devices
  projects/calloutng/usr.sbin/bsdconfig/networking/hostname
  projects/calloutng/usr.sbin/bsdconfig/networking/nameservers
  projects/calloutng/usr.sbin/bsdconfig/networking/networking
  projects/calloutng/usr.sbin/bsdconfig/networking/share/common.subr
  projects/calloutng/usr.sbin/bsdconfig/networking/share/device.subr
  projects/calloutng/usr.sbin/bsdconfig/networking/share/hostname.subr
  projects/calloutng/usr.sbin/bsdconfig/networking/share/ipaddr.subr
  projects/calloutng/usr.sbin/bsdconfig/networking/share/media.subr
  projects/calloutng/usr.sbin/bsdconfig/networking/share/netmask.subr
  projects/calloutng/usr.sbin/bsdconfig/networking/share/resolv.subr
  projects/calloutng/usr.sbin/bsdconfig/networking/share/routing.subr
  projects/calloutng/usr.sbin/bsdconfig/password/password
  projects/calloutng/usr.sbin/bsdconfig/password/share/password.subr
  projects/calloutng/usr.sbin/bsdconfig/security/kern_securelevel
  projects/calloutng/usr.sbin/bsdconfig/security/security
  projects/calloutng/usr.sbin/bsdconfig/share/common.subr
  projects/calloutng/usr.sbin/bsdconfig/share/dialog.subr
  projects/calloutng/usr.sbin/bsdconfig/share/mustberoot.subr
  projects/calloutng/usr.sbin/bsdconfig/share/strings.subr
  projects/calloutng/usr.sbin/bsdconfig/share/sysrc.subr
  projects/calloutng/usr.sbin/bsdconfig/startup/misc
  projects/calloutng/usr.sbin/bsdconfig/startup/rcadd
  projects/calloutng/usr.sbin/bsdconfig/startup/rcconf
  projects/calloutng/usr.sbin/bsdconfig/startup/rcdelete
  projects/calloutng/usr.sbin/bsdconfig/startup/rcedit
  projects/calloutng/usr.sbin/bsdconfig/startup/rcvar
  projects/calloutng/usr.sbin/bsdconfig/startup/share/rcconf.subr
  projects/calloutng/usr.sbin/bsdconfig/startup/share/rcedit.subr
  projects/calloutng/usr.sbin/bsdconfig/startup/share/rcvar.subr
  projects/calloutng/usr.sbin/bsdconfig/startup/startup
  projects/calloutng/usr.sbin/bsdconfig/timezone/share/continents.subr
  projects/calloutng/usr.sbin/bsdconfig/timezone/share/countries.subr
  projects/calloutng/usr.sbin/bsdconfig/timezone/share/iso3166.subr
  projects/calloutng/usr.sbin/bsdconfig/timezone/share/menus.subr
  projects/calloutng/usr.sbin/bsdconfig/timezone/share/zones.subr
  projects/calloutng/usr.sbin/bsdconfig/timezone/timezone
  projects/calloutng/usr.sbin/bsdconfig/ttys/ttys
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/groupadd
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/groupdel
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/groupedit
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/groupinput
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/share/group_input.subr
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/share/user_input.subr
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/useradd
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/userdel
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/useredit
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/userinput
  projects/calloutng/usr.sbin/bsdconfig/usermgmt/usermgmt
  projects/calloutng/usr.sbin/gssd/Makefile
  projects/calloutng/usr.sbin/gssd/gssd.8
  projects/calloutng/usr.sbin/gssd/gssd.c
  projects/calloutng/usr.sbin/mountd/mountd.c
  projects/calloutng/usr.sbin/mptable/mptable.c
  projects/calloutng/usr.sbin/mtest/mtest.c
  projects/calloutng/usr.sbin/ndp/ndp.8
  projects/calloutng/usr.sbin/nfsd/nfsd.c
  projects/calloutng/usr.sbin/pkg/pkg.c
  projects/calloutng/usr.sbin/rpcbind/rpcbind.c
  projects/calloutng/usr.sbin/syslogd/syslogd.c
  projects/calloutng/usr.sbin/ypserv/yp_main.c
Directory Properties:
  projects/calloutng/   (props changed)
  projects/calloutng/contrib/binutils/   (props changed)
  projects/calloutng/contrib/gdb/   (props changed)
  projects/calloutng/contrib/libstdc++/   (props changed)
  projects/calloutng/contrib/llvm/   (props changed)
  projects/calloutng/contrib/llvm/tools/clang/   (props changed)
  projects/calloutng/contrib/xz/   (props changed)
  projects/calloutng/gnu/lib/   (props changed)
  projects/calloutng/gnu/usr.bin/binutils/   (props changed)
  projects/calloutng/lib/libc/   (props changed)
  projects/calloutng/sbin/   (props changed)
  projects/calloutng/share/man/man4/   (props changed)
  projects/calloutng/sys/   (props changed)
  projects/calloutng/sys/boot/   (props changed)
  projects/calloutng/sys/boot/i386/efi/   (props changed)
  projects/calloutng/sys/cddl/contrib/opensolaris/   (props changed)
  projects/calloutng/sys/conf/   (props changed)

Modified: projects/calloutng/UPDATING
==============================================================================
--- projects/calloutng/UPDATING	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/UPDATING	Tue Dec 25 13:00:19 2012	(r244677)
@@ -26,6 +26,24 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10
 	disable the most expensive debugging functionality run
 	"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
 
+20121223:
+	After switching to Clang as the default compiler some users of ZFS
+	on i386 systems started to experience stack overflow kernel panics.
+	Please consider using 'options KSTACK_PAGES=4' in such configurations.
+
+20121222:
+	GEOM_LABEL now mangles label names read from file system metadata.
+	Mangling affect labels containing spaces, non-printable characters,
+	'%' or '"'. Device names in /etc/fstab and other places may need to
+	be updated.
+
+20121217:
+	By default, only the 10 most recent kernel dumps will be saved.  To
+	restore the previous behaviour (no limit on the number of kernel dumps
+	stored in the dump directory) add the following line to /etc/rc.conf:
+
+		savecore_flags=""
+
 20121201:
 	With the addition of auditdistd(8), a new auditdistd user is now
 	depended on during installworld.  "mergemaster -p" can be used to add

Modified: projects/calloutng/bin/date/netdate.c
==============================================================================
--- projects/calloutng/bin/date/netdate.c	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/bin/date/netdate.c	Tue Dec 25 13:00:19 2012	(r244677)
@@ -85,7 +85,7 @@ netsettime(time_t tval)
 	dest.sin_addr.s_addr = htonl((u_long)INADDR_ANY);
 	s = socket(AF_INET, SOCK_DGRAM, 0);
 	if (s < 0) {
-		if (errno != EPROTONOSUPPORT)
+		if (errno != EAFNOSUPPORT)
 			warn("timed");
 		return (retval = 2);
 	}

Modified: projects/calloutng/contrib/binutils/bfd/elflink.c
==============================================================================
--- projects/calloutng/contrib/binutils/bfd/elflink.c	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/binutils/bfd/elflink.c	Tue Dec 25 13:00:19 2012	(r244677)
@@ -10584,6 +10584,7 @@ elf_gc_sweep (bfd *abfd, struct bfd_link
 	{
 	  /* Keep debug and special sections.  */
 	  if ((o->flags & (SEC_DEBUGGING | SEC_LINKER_CREATED)) != 0
+	      || elf_section_data (o)->this_hdr.sh_type == SHT_NOTE
 	      || (o->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0)
 	    o->gc_mark = 1;
 

Modified: projects/calloutng/contrib/gdb/gdb/dwarf2read.c
==============================================================================
--- projects/calloutng/contrib/gdb/gdb/dwarf2read.c	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/gdb/gdb/dwarf2read.c	Tue Dec 25 13:00:19 2012	(r244677)
@@ -834,6 +834,8 @@ static void read_tag_const_type (struct 
 
 static void read_tag_volatile_type (struct die_info *, struct dwarf2_cu *);
 
+static void read_tag_restrict_type (struct die_info *, struct dwarf2_cu *);
+
 static void read_tag_string_type (struct die_info *, struct dwarf2_cu *);
 
 static void read_subroutine_type (struct die_info *, struct dwarf2_cu *);
@@ -3729,7 +3731,8 @@ read_tag_const_type (struct die_info *di
     }
 
   base_type = die_type (die, cu);
-  die->type = make_cv_type (1, TYPE_VOLATILE (base_type), base_type, 0);
+  die->type = make_cvr_type (1, TYPE_VOLATILE (base_type),
+                             TYPE_RESTRICT (base_type), base_type, 0);
 }
 
 static void
@@ -3743,7 +3746,23 @@ read_tag_volatile_type (struct die_info 
     }
 
   base_type = die_type (die, cu);
-  die->type = make_cv_type (TYPE_CONST (base_type), 1, base_type, 0);
+  die->type = make_cvr_type (TYPE_CONST (base_type), 1,
+                             TYPE_RESTRICT (base_type), base_type, 0);
+}
+
+static void
+read_tag_restrict_type (struct die_info *die, struct dwarf2_cu *cu)
+{
+  struct type *base_type;
+
+  if (die->type)
+    {
+      return;
+    }
+
+  base_type = die_type (die, cu);
+  die->type = make_cvr_type (TYPE_CONST (base_type), TYPE_VOLATILE (base_type),
+                             1, base_type, 0);
 }
 
 /* Extract all information from a DW_TAG_string_type DIE and add to
@@ -6086,6 +6105,9 @@ read_type_die (struct die_info *die, str
     case DW_TAG_volatile_type:
       read_tag_volatile_type (die, cu);
       break;
+    case DW_TAG_restrict_type:
+      read_tag_restrict_type (die, cu);
+      break;
     case DW_TAG_string_type:
       read_tag_string_type (die, cu);
       break;

Modified: projects/calloutng/contrib/gdb/gdb/gdbtypes.c
==============================================================================
--- projects/calloutng/contrib/gdb/gdb/gdbtypes.c	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/gdb/gdb/gdbtypes.c	Tue Dec 25 13:00:19 2012	(r244677)
@@ -502,7 +502,8 @@ make_type_with_address_space (struct typ
    We allocate new memory if needed.  */
 
 struct type *
-make_cv_type (int cnst, int voltl, struct type *type, struct type **typeptr)
+make_cvr_type (int cnst, int voltl, int restrct, struct type *type,
+               struct type **typeptr)
 {
   struct type *ntype;	/* New type */
   struct type *tmp_type = type;	/* tmp type */
@@ -517,6 +518,9 @@ make_cv_type (int cnst, int voltl, struc
   if (voltl)
     new_flags |= TYPE_FLAG_VOLATILE;
 
+  if (restrct)
+    new_flags |= TYPE_FLAG_RESTRICT;
+
   if (typeptr && *typeptr != NULL)
     {
       /* Objfile is per-core-type.  This const-qualified type had best
@@ -1371,7 +1375,7 @@ struct type *
 check_typedef (struct type *type)
 {
   struct type *orig_type = type;
-  int is_const, is_volatile;
+  int is_const, is_volatile, is_restrict;
 
   while (TYPE_CODE (type) == TYPE_CODE_TYPEDEF)
     {
@@ -1407,6 +1411,7 @@ check_typedef (struct type *type)
 
   is_const = TYPE_CONST (type);
   is_volatile = TYPE_VOLATILE (type);
+  is_restrict = TYPE_RESTRICT (type);
 
   /* If this is a struct/class/union with no fields, then check whether a
      full definition exists somewhere else.  This is for systems where a
@@ -1424,7 +1429,7 @@ check_typedef (struct type *type)
 	}
       newtype = lookup_transparent_type (name);
       if (newtype)
-	make_cv_type (is_const, is_volatile, newtype, &type);
+	make_cvr_type (is_const, is_volatile, is_restrict, newtype, &type);
     }
   /* Otherwise, rely on the stub flag being set for opaque/stubbed types */
   else if (TYPE_STUB (type) && !currently_reading_symtab)
@@ -1442,7 +1447,8 @@ check_typedef (struct type *type)
 	}
       sym = lookup_symbol (name, 0, STRUCT_DOMAIN, 0, (struct symtab **) NULL);
       if (sym)
-	make_cv_type (is_const, is_volatile, SYMBOL_TYPE (sym), &type);
+	make_cvr_type (is_const, is_volatile, is_restrict, SYMBOL_TYPE (sym),
+                       &type);
     }
 
   if (TYPE_TARGET_STUB (type))

Modified: projects/calloutng/contrib/gdb/gdb/gdbtypes.h
==============================================================================
--- projects/calloutng/contrib/gdb/gdb/gdbtypes.h	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/gdb/gdb/gdbtypes.h	Tue Dec 25 13:00:19 2012	(r244677)
@@ -273,6 +273,13 @@ enum type_code
 #define TYPE_ADDRESS_CLASS_ALL(t) (TYPE_INSTANCE_FLAGS(t) \
 				   & TYPE_FLAG_ADDRESS_CLASS_ALL)
 
+/* Restrict type.  If this is set, the corresponding type has a
+ * restrict modifier.
+ */
+
+#define TYPE_FLAG_RESTRICT (1 << 17)
+#define TYPE_RESTRICT(t)	(TYPE_INSTANCE_FLAGS (t) & TYPE_FLAG_RESTRICT)
+
 /*  Array bound type.  */
 enum array_bound_type
 {
@@ -1099,7 +1106,8 @@ extern struct type *lookup_reference_typ
 
 extern struct type *make_reference_type (struct type *, struct type **);
 
-extern struct type *make_cv_type (int, int, struct type *, struct type **);
+extern struct type *make_cvr_type (int, int, int, struct type *,
+                                   struct type **);
 
 extern void replace_type (struct type *, struct type *);
 

Modified: projects/calloutng/contrib/gdb/gdb/hpread.c
==============================================================================
--- projects/calloutng/contrib/gdb/gdb/hpread.c	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/gdb/gdb/hpread.c	Tue Dec 25 13:00:19 2012	(r244677)
@@ -4939,8 +4939,9 @@ hpread_type_lookup (dnttpointer hp_type,
        * "m_void" modifiers?  Is static_flag really needed here?
        * (m_static used for methods of classes, elsewhere).
        */
-      tmp_type = make_cv_type (dn_bufp->dmodifier.m_const,
+      tmp_type = make_cvr_type (dn_bufp->dmodifier.m_const,
 			       dn_bufp->dmodifier.m_volatile,
+                               0,
 		      hpread_type_lookup (dn_bufp->dmodifier.type, objfile),
 			       0);
       return tmp_type;

Modified: projects/calloutng/contrib/gdb/gdb/parse.c
==============================================================================
--- projects/calloutng/contrib/gdb/gdb/parse.c	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/gdb/gdb/parse.c	Tue Dec 25 13:00:19 2012	(r244677)
@@ -1167,13 +1167,15 @@ follow_types (struct type *follow_type)
       case tp_end:
 	done = 1;
 	if (make_const)
-	  follow_type = make_cv_type (make_const, 
-				      TYPE_VOLATILE (follow_type), 
-				      follow_type, 0);
+	  follow_type = make_cvr_type (make_const,
+				       TYPE_VOLATILE (follow_type),
+				       TYPE_RESTRICT (follow_type),
+				       follow_type, 0);
 	if (make_volatile)
-	  follow_type = make_cv_type (TYPE_CONST (follow_type), 
-				      make_volatile, 
-				      follow_type, 0);
+	  follow_type = make_cvr_type (TYPE_CONST (follow_type),
+				       make_volatile,
+				       TYPE_RESTRICT (follow_type),
+				       follow_type, 0);
 	if (make_addr_space)
 	  follow_type = make_type_with_address_space (follow_type, 
 						      make_addr_space);
@@ -1192,13 +1194,15 @@ follow_types (struct type *follow_type)
       case tp_pointer:
 	follow_type = lookup_pointer_type (follow_type);
 	if (make_const)
-	  follow_type = make_cv_type (make_const, 
-				      TYPE_VOLATILE (follow_type), 
-				      follow_type, 0);
+	  follow_type = make_cvr_type (make_const,
+				       TYPE_VOLATILE (follow_type),
+				       TYPE_RESTRICT (follow_type),
+				       follow_type, 0);
 	if (make_volatile)
-	  follow_type = make_cv_type (TYPE_CONST (follow_type), 
-				      make_volatile, 
-				      follow_type, 0);
+	  follow_type = make_cvr_type (TYPE_CONST (follow_type),
+				       make_volatile,
+				       TYPE_RESTRICT (follow_type),
+				       follow_type, 0);
 	if (make_addr_space)
 	  follow_type = make_type_with_address_space (follow_type, 
 						      make_addr_space);
@@ -1208,13 +1212,15 @@ follow_types (struct type *follow_type)
       case tp_reference:
 	follow_type = lookup_reference_type (follow_type);
 	if (make_const)
-	  follow_type = make_cv_type (make_const, 
-				      TYPE_VOLATILE (follow_type), 
-				      follow_type, 0);
+	  follow_type = make_cvr_type (make_const,
+				       TYPE_VOLATILE (follow_type),
+				       TYPE_RESTRICT (follow_type),
+				       follow_type, 0);
 	if (make_volatile)
-	  follow_type = make_cv_type (TYPE_CONST (follow_type), 
-				      make_volatile, 
-				      follow_type, 0);
+	  follow_type = make_cvr_type (TYPE_CONST (follow_type),
+				       make_volatile,
+				       TYPE_RESTRICT (follow_type),
+				       follow_type, 0);
 	if (make_addr_space)
 	  follow_type = make_type_with_address_space (follow_type, 
 						      make_addr_space);

Modified: projects/calloutng/contrib/gdb/gdb/stabsread.c
==============================================================================
--- projects/calloutng/contrib/gdb/gdb/stabsread.c	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/gdb/gdb/stabsread.c	Tue Dec 25 13:00:19 2012	(r244677)
@@ -1750,13 +1750,13 @@ again:
 
     case 'k':			/* Const qualifier on some type (Sun) */
       type = read_type (pp, objfile);
-      type = make_cv_type (1, TYPE_VOLATILE (type), type,
+      type = make_cvr_type (1, TYPE_VOLATILE (type), TYPE_RESTRICT(type), type,
 			   dbx_lookup_type (typenums));
       break;
 
     case 'B':			/* Volatile qual on some type (Sun) */
       type = read_type (pp, objfile);
-      type = make_cv_type (TYPE_CONST (type), 1, type,
+      type = make_cvr_type (TYPE_CONST (type), 1, TYPE_RESTRICT(type), type,
 			   dbx_lookup_type (typenums));
       break;
 

Modified: projects/calloutng/contrib/libstdc++/include/std/std_limits.h
==============================================================================
--- projects/calloutng/contrib/libstdc++/include/std/std_limits.h	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/libstdc++/include/std/std_limits.h	Tue Dec 25 13:00:19 2012	(r244677)
@@ -134,10 +134,11 @@
 #define __glibcxx_signed(T)	((T)(-1) < 0)
 
 #define __glibcxx_min(T) \
-  (__glibcxx_signed (T) ? (T)1 << __glibcxx_digits (T) : (T)0)
+  (__glibcxx_signed (T) ? (((T)1 << (__glibcxx_digits (T) - 1)) << 1) : (T)0)
 
 #define __glibcxx_max(T) \
-  (__glibcxx_signed (T) ? ((T)1 << __glibcxx_digits (T)) - 1 : ~(T)0)
+  (__glibcxx_signed (T) ? \
+   (((((T)1 << (__glibcxx_digits (T) - 1)) - 1) << 1) + 1) : ~(T)0)
 
 #define __glibcxx_digits(T) \
   (sizeof(T) * __CHAR_BIT__ - __glibcxx_signed (T))

Modified: projects/calloutng/contrib/llvm/include/llvm/MC/MCExpr.h
==============================================================================
--- projects/calloutng/contrib/llvm/include/llvm/MC/MCExpr.h	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/include/llvm/MC/MCExpr.h	Tue Dec 25 13:00:19 2012	(r244677)
@@ -197,7 +197,11 @@ public:
     VK_Mips_GOT_PAGE,
     VK_Mips_GOT_OFST,
     VK_Mips_HIGHER,
-    VK_Mips_HIGHEST
+    VK_Mips_HIGHEST,
+    VK_Mips_GOT_HI16,
+    VK_Mips_GOT_LO16,
+    VK_Mips_CALL_HI16,
+    VK_Mips_CALL_LO16
   };
 
 private:

Modified: projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
==============================================================================
--- projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp	Tue Dec 25 13:00:19 2012	(r244677)
@@ -346,7 +346,7 @@ uint8_t *RuntimeDyldImpl::createStubFunc
     uint32_t *StubAddr = (uint32_t*)Addr;
     *StubAddr = 0xe51ff004; // ldr pc,<label>
     return (uint8_t*)++StubAddr;
-  } else if (Arch == Triple::mipsel) {
+  } else if (Arch == Triple::mipsel || Arch == Triple::mips) {
     uint32_t *StubAddr = (uint32_t*)Addr;
     // 0:   3c190000        lui     t9,%hi(addr).
     // 4:   27390000        addiu   t9,t9,%lo(addr).

Modified: projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
==============================================================================
--- projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp	Tue Dec 25 13:00:19 2012	(r244677)
@@ -676,7 +676,8 @@ void RuntimeDyldELF::processRelocationRe
                         RelType, 0);
       Section.StubOffset += getMaxStubSize();
     }
-  } else if (Arch == Triple::mipsel && RelType == ELF::R_MIPS_26) {
+  } else if ((Arch == Triple::mipsel || Arch == Triple::mips) &&
+             RelType == ELF::R_MIPS_26) {
     // This is an Mips branch relocation, need to use a stub function.
     DEBUG(dbgs() << "\t\tThis is a Mips branch relocation.");
     SectionEntry &Section = Sections[Rel.SectionID];

Modified: projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
==============================================================================
--- projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h	Tue Dec 25 13:00:19 2012	(r244677)
@@ -168,7 +168,7 @@ protected:
   inline unsigned getMaxStubSize() {
     if (Arch == Triple::arm || Arch == Triple::thumb)
       return 8; // 32-bit instruction and 32-bit address
-    else if (Arch == Triple::mipsel)
+    else if (Arch == Triple::mipsel || Arch == Triple::mips)
       return 16;
     else if (Arch == Triple::ppc64)
       return 44;

Modified: projects/calloutng/contrib/llvm/lib/MC/MCExpr.cpp
==============================================================================
--- projects/calloutng/contrib/llvm/lib/MC/MCExpr.cpp	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/MC/MCExpr.cpp	Tue Dec 25 13:00:19 2012	(r244677)
@@ -229,6 +229,10 @@ StringRef MCSymbolRefExpr::getVariantKin
   case VK_Mips_GOT_OFST: return "GOT_OFST";
   case VK_Mips_HIGHER:   return "HIGHER";
   case VK_Mips_HIGHEST:  return "HIGHEST";
+  case VK_Mips_GOT_HI16: return "GOT_HI16";
+  case VK_Mips_GOT_LO16: return "GOT_LO16";
+  case VK_Mips_CALL_HI16: return "CALL_HI16";
+  case VK_Mips_CALL_LO16: return "CALL_LO16";
   }
   llvm_unreachable("Invalid variant kind");
 }

Modified: projects/calloutng/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp
==============================================================================
--- projects/calloutng/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp	Tue Dec 25 13:00:19 2012	(r244677)
@@ -128,6 +128,10 @@ static void printExpr(const MCExpr *Expr
   case MCSymbolRefExpr::VK_Mips_GOT_OFST:  OS << "%got_ofst("; break;
   case MCSymbolRefExpr::VK_Mips_HIGHER:    OS << "%higher("; break;
   case MCSymbolRefExpr::VK_Mips_HIGHEST:   OS << "%highest("; break;
+  case MCSymbolRefExpr::VK_Mips_GOT_HI16:  OS << "%got_hi("; break;
+  case MCSymbolRefExpr::VK_Mips_GOT_LO16:  OS << "%got_lo("; break;
+  case MCSymbolRefExpr::VK_Mips_CALL_HI16: OS << "%call_hi("; break;
+  case MCSymbolRefExpr::VK_Mips_CALL_LO16: OS << "%call_lo("; break;
   }
 
   OS << SRE->getSymbol();

Modified: projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
==============================================================================
--- projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp	Tue Dec 25 13:00:19 2012	(r244677)
@@ -42,6 +42,8 @@ static unsigned adjustFixupValue(unsigne
   case Mips::fixup_Mips_GOT_PAGE:
   case Mips::fixup_Mips_GOT_OFST:
   case Mips::fixup_Mips_GOT_DISP:
+  case Mips::fixup_Mips_GOT_LO16:
+  case Mips::fixup_Mips_CALL_LO16:
     break;
   case Mips::fixup_Mips_PC16:
     // So far we are only using this type for branches.
@@ -60,6 +62,8 @@ static unsigned adjustFixupValue(unsigne
     break;
   case Mips::fixup_Mips_HI16:
   case Mips::fixup_Mips_GOT_Local:
+  case Mips::fixup_Mips_GOT_HI16:
+  case Mips::fixup_Mips_CALL_HI16:
     // Get the 2nd 16-bits. Also add 1 if bit 15 is 1.
     Value = ((Value + 0x8000) >> 16) & 0xffff;
     break;
@@ -179,7 +183,11 @@ public:
       { "fixup_Mips_GOT_OFST",     0,     16,   0 },
       { "fixup_Mips_GOT_DISP",     0,     16,   0 },
       { "fixup_Mips_HIGHER",       0,     16,   0 },
-      { "fixup_Mips_HIGHEST",      0,     16,   0 }
+      { "fixup_Mips_HIGHEST",      0,     16,   0 },
+      { "fixup_Mips_GOT_HI16",     0,     16,   0 },
+      { "fixup_Mips_GOT_LO16",     0,     16,   0 },
+      { "fixup_Mips_CALL_HI16",    0,     16,   0 },
+      { "fixup_Mips_CALL_LO16",    0,     16,   0 }
     };
 
     if (Kind < FirstTargetFixupKind)

Modified: projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h
==============================================================================
--- projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h	Tue Dec 25 13:00:19 2012	(r244677)
@@ -84,7 +84,13 @@ namespace MipsII {
     /// MO_HIGHER/HIGHEST - Represents the highest or higher half word of a
     /// 64-bit symbol address.
     MO_HIGHER,
-    MO_HIGHEST
+    MO_HIGHEST,
+
+    /// MO_GOT_HI16/LO16, MO_CALL_HI16/LO16 - Relocations used for large GOTs.
+    MO_GOT_HI16,
+    MO_GOT_LO16,
+    MO_CALL_HI16,
+    MO_CALL_LO16
   };
 
   enum {

Modified: projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
==============================================================================
--- projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp	Tue Dec 25 13:00:19 2012	(r244677)
@@ -179,6 +179,18 @@ unsigned MipsELFObjectWriter::GetRelocTy
   case Mips::fixup_Mips_HIGHEST:
     Type = ELF::R_MIPS_HIGHEST;
     break;
+  case Mips::fixup_Mips_GOT_HI16:
+    Type = ELF::R_MIPS_GOT_HI16;
+    break;
+  case Mips::fixup_Mips_GOT_LO16:
+    Type = ELF::R_MIPS_GOT_LO16;
+    break;
+  case Mips::fixup_Mips_CALL_HI16:
+    Type = ELF::R_MIPS_CALL_HI16;
+    break;
+  case Mips::fixup_Mips_CALL_LO16:
+    Type = ELF::R_MIPS_CALL_LO16;
+    break;
   }
   return Type;
 }

Modified: projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h
==============================================================================
--- projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h	Tue Dec 25 13:00:19 2012	(r244677)
@@ -116,6 +116,18 @@ namespace Mips {
     // resulting in - R_MIPS_HIGHEST
     fixup_Mips_HIGHEST,
 
+    // resulting in - R_MIPS_GOT_HI16
+    fixup_Mips_GOT_HI16,
+
+    // resulting in - R_MIPS_GOT_LO16
+    fixup_Mips_GOT_LO16,
+
+    // resulting in - R_MIPS_CALL_HI16
+    fixup_Mips_CALL_HI16,
+
+    // resulting in - R_MIPS_CALL_LO16
+    fixup_Mips_CALL_LO16,
+
     // Marker
     LastTargetFixupKind,
     NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind

Modified: projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
==============================================================================
--- projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp	Tue Dec 25 13:00:19 2012	(r244677)
@@ -287,6 +287,18 @@ getMachineOpValue(const MCInst &MI, cons
   case MCSymbolRefExpr::VK_Mips_HIGHEST:
     FixupKind = Mips::fixup_Mips_HIGHEST;
     break;
+  case MCSymbolRefExpr::VK_Mips_GOT_HI16:
+    FixupKind = Mips::fixup_Mips_GOT_HI16;
+    break;
+  case MCSymbolRefExpr::VK_Mips_GOT_LO16:
+    FixupKind = Mips::fixup_Mips_GOT_LO16;
+    break;
+  case MCSymbolRefExpr::VK_Mips_CALL_HI16:
+    FixupKind = Mips::fixup_Mips_CALL_HI16;
+    break;
+  case MCSymbolRefExpr::VK_Mips_CALL_LO16:
+    FixupKind = Mips::fixup_Mips_CALL_LO16;
+    break;
   } // switch
 
   Fixups.push_back(MCFixup::Create(0, MO.getExpr(), MCFixupKind(FixupKind)));

Modified: projects/calloutng/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td
==============================================================================
--- projects/calloutng/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td	Tue Dec 25 13:00:19 2012	(r244677)
@@ -255,6 +255,7 @@ def : MipsPat<(MipsHi tblockaddress:$in)
 def : MipsPat<(MipsHi tjumptable:$in), (LUi64 tjumptable:$in)>;
 def : MipsPat<(MipsHi tconstpool:$in), (LUi64 tconstpool:$in)>;
 def : MipsPat<(MipsHi tglobaltlsaddr:$in), (LUi64 tglobaltlsaddr:$in)>;
+def : MipsPat<(MipsHi texternalsym:$in), (LUi64 texternalsym:$in)>;
 
 def : MipsPat<(MipsLo tglobaladdr:$in), (DADDiu ZERO_64, tglobaladdr:$in)>;
 def : MipsPat<(MipsLo tblockaddress:$in), (DADDiu ZERO_64, tblockaddress:$in)>;
@@ -262,6 +263,7 @@ def : MipsPat<(MipsLo tjumptable:$in), (
 def : MipsPat<(MipsLo tconstpool:$in), (DADDiu ZERO_64, tconstpool:$in)>;
 def : MipsPat<(MipsLo tglobaltlsaddr:$in),
               (DADDiu ZERO_64, tglobaltlsaddr:$in)>;
+def : MipsPat<(MipsLo texternalsym:$in), (DADDiu ZERO_64, texternalsym:$in)>;
 
 def : MipsPat<(add CPU64Regs:$hi, (MipsLo tglobaladdr:$lo)),
               (DADDiu CPU64Regs:$hi, tglobaladdr:$lo)>;

Modified: projects/calloutng/contrib/llvm/lib/Target/Mips/MipsCodeEmitter.cpp
==============================================================================
--- projects/calloutng/contrib/llvm/lib/Target/Mips/MipsCodeEmitter.cpp	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/Target/Mips/MipsCodeEmitter.cpp	Tue Dec 25 13:00:19 2012	(r244677)
@@ -85,7 +85,7 @@ class MipsCodeEmitter : public MachineFu
 
   private:
 
-    void emitWordLE(unsigned Word);
+    void emitWord(unsigned Word);
 
     /// Routines that handle operands which add machine relocations which are
     /// fixed up by the relocation stage.
@@ -112,12 +112,6 @@ class MipsCodeEmitter : public MachineFu
     unsigned getSizeExtEncoding(const MachineInstr &MI, unsigned OpNo) const;
     unsigned getSizeInsEncoding(const MachineInstr &MI, unsigned OpNo) const;
 
-    int emitULW(const MachineInstr &MI);
-    int emitUSW(const MachineInstr &MI);
-    int emitULH(const MachineInstr &MI);
-    int emitULHu(const MachineInstr &MI);
-    int emitUSH(const MachineInstr &MI);
-
     void emitGlobalAddressUnaligned(const GlobalValue *GV, unsigned Reloc,
                                     int Offset) const;
   };
@@ -133,7 +127,7 @@ bool MipsCodeEmitter::runOnMachineFuncti
   MCPEs = &MF.getConstantPool()->getConstants();
   MJTEs = 0;
   if (MF.getJumpTableInfo()) MJTEs = &MF.getJumpTableInfo()->getJumpTables();
-  JTI->Initialize(MF, IsPIC);
+  JTI->Initialize(MF, IsPIC, Subtarget->isLittle());
   MCE.setModuleInfo(&getAnalysis<MachineModuleInfo> ());
 
   do {
@@ -271,103 +265,6 @@ void MipsCodeEmitter::emitMachineBasicBl
                                              Reloc, BB));
 }
 
-int MipsCodeEmitter::emitUSW(const MachineInstr &MI) {
-  unsigned src = getMachineOpValue(MI, MI.getOperand(0));
-  unsigned base = getMachineOpValue(MI, MI.getOperand(1));
-  unsigned offset = getMachineOpValue(MI, MI.getOperand(2));
-  // swr src, offset(base)
-  // swl src, offset+3(base)
-  MCE.emitWordLE(
-    (0x2e << 26) | (base << 21) | (src << 16) | (offset & 0xffff));
-  MCE.emitWordLE(
-    (0x2a << 26) | (base << 21) | (src << 16) | ((offset+3) & 0xffff));
-  return 2;
-}
-
-int MipsCodeEmitter::emitULW(const MachineInstr &MI) {
-  unsigned dst = getMachineOpValue(MI, MI.getOperand(0));
-  unsigned base = getMachineOpValue(MI, MI.getOperand(1));
-  unsigned offset = getMachineOpValue(MI, MI.getOperand(2));
-  unsigned at = 1;
-  if (dst != base) {
-    // lwr dst, offset(base)
-    // lwl dst, offset+3(base)
-    MCE.emitWordLE(
-      (0x26 << 26) | (base << 21) | (dst << 16) | (offset & 0xffff));
-    MCE.emitWordLE(
-      (0x22 << 26) | (base << 21) | (dst << 16) | ((offset+3) & 0xffff));
-    return 2;
-  } else {
-    // lwr at, offset(base)
-    // lwl at, offset+3(base)
-    // addu dst, at, $zero
-    MCE.emitWordLE(
-      (0x26 << 26) | (base << 21) | (at << 16) | (offset & 0xffff));
-    MCE.emitWordLE(
-      (0x22 << 26) | (base << 21) | (at << 16) | ((offset+3) & 0xffff));
-    MCE.emitWordLE(
-      (0x0 << 26) | (at << 21) | (0x0 << 16) | (dst << 11) | (0x0 << 6) | 0x21);
-    return 3;
-  }
-}
-
-int MipsCodeEmitter::emitUSH(const MachineInstr &MI) {
-  unsigned src = getMachineOpValue(MI, MI.getOperand(0));
-  unsigned base = getMachineOpValue(MI, MI.getOperand(1));
-  unsigned offset = getMachineOpValue(MI, MI.getOperand(2));
-  unsigned at = 1;
-  // sb src, offset(base)
-  // srl at,src,8
-  // sb at, offset+1(base)
-  MCE.emitWordLE(
-    (0x28 << 26) | (base << 21) | (src << 16) | (offset & 0xffff));
-  MCE.emitWordLE(
-    (0x0 << 26) | (0x0 << 21) | (src << 16) | (at << 11) | (0x8 << 6) | 0x2);
-  MCE.emitWordLE(
-    (0x28 << 26) | (base << 21) | (at << 16) | ((offset+1) & 0xffff));
-  return 3;
-}
-
-int MipsCodeEmitter::emitULH(const MachineInstr &MI) {
-  unsigned dst = getMachineOpValue(MI, MI.getOperand(0));
-  unsigned base = getMachineOpValue(MI, MI.getOperand(1));
-  unsigned offset = getMachineOpValue(MI, MI.getOperand(2));
-  unsigned at = 1;
-  // lbu at, offset(base)
-  // lb dst, offset+1(base)
-  // sll dst,dst,8
-  // or dst,dst,at
-  MCE.emitWordLE(
-    (0x24 << 26) | (base << 21) | (at << 16) | (offset & 0xffff));
-  MCE.emitWordLE(
-    (0x20 << 26) | (base << 21) | (dst << 16) | ((offset+1) & 0xffff));
-  MCE.emitWordLE(
-    (0x0 << 26) | (0x0 << 21) | (dst << 16) | (dst << 11) | (0x8 << 6) | 0x0);
-  MCE.emitWordLE(
-    (0x0 << 26) | (dst << 21) | (at << 16) | (dst << 11) | (0x0 << 6) | 0x25);
-  return 4;
-}
-
-int MipsCodeEmitter::emitULHu(const MachineInstr &MI) {
-  unsigned dst = getMachineOpValue(MI, MI.getOperand(0));
-  unsigned base = getMachineOpValue(MI, MI.getOperand(1));
-  unsigned offset = getMachineOpValue(MI, MI.getOperand(2));
-  unsigned at = 1;
-  // lbu at, offset(base)
-  // lbu dst, offset+1(base)
-  // sll dst,dst,8
-  // or dst,dst,at
-  MCE.emitWordLE(
-    (0x24 << 26) | (base << 21) | (at << 16) | (offset & 0xffff));
-  MCE.emitWordLE(
-    (0x24 << 26) | (base << 21) | (dst << 16) | ((offset+1) & 0xffff));
-  MCE.emitWordLE(
-    (0x0 << 26) | (0x0 << 21) | (dst << 16) | (dst << 11) | (0x8 << 6) | 0x0);
-  MCE.emitWordLE(
-    (0x0 << 26) | (dst << 21) | (at << 16) | (dst << 11) | (0x0 << 6) | 0x25);
-  return 4;
-}
-
 void MipsCodeEmitter::emitInstruction(const MachineInstr &MI) {
   DEBUG(errs() << "JIT: " << (void*)MCE.getCurrentPCValue() << ":\t" << MI);
 
@@ -377,16 +274,19 @@ void MipsCodeEmitter::emitInstruction(co
   if ((MI.getDesc().TSFlags & MipsII::FormMask) == MipsII::Pseudo)
     return;
 
-  emitWordLE(getBinaryCodeForInstr(MI));
+  emitWord(getBinaryCodeForInstr(MI));
   ++NumEmitted;  // Keep track of the # of mi's emitted
 
   MCE.processDebugLoc(MI.getDebugLoc(), false);
 }
 
-void MipsCodeEmitter::emitWordLE(unsigned Word) {
+void MipsCodeEmitter::emitWord(unsigned Word) {
   DEBUG(errs() << "  0x";
         errs().write_hex(Word) << "\n");
-  MCE.emitWordLE(Word);
+  if (Subtarget->isLittle())
+    MCE.emitWordLE(Word);
+  else
+    MCE.emitWordBE(Word);
 }
 
 /// createMipsJITCodeEmitterPass - Return a pass that emits the collected Mips

Modified: projects/calloutng/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
==============================================================================
--- projects/calloutng/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp	Tue Dec 25 11:11:26 2012	(r244676)
+++ projects/calloutng/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp	Tue Dec 25 13:00:19 2012	(r244677)
@@ -46,6 +46,10 @@ static cl::opt<bool>
 EnableMipsTailCalls("enable-mips-tail-calls", cl::Hidden,
                     cl::desc("MIPS: Enable tail calls."), cl::init(false));
 
+static cl::opt<bool>
+LargeGOT("mxgot", cl::Hidden,
+         cl::desc("MIPS: Enable GOT larger than 64k."), cl::init(false));
+
 static const uint16_t O32IntRegs[4] = {
   Mips::A0, Mips::A1, Mips::A2, Mips::A3
 };
@@ -77,6 +81,71 @@ static SDValue GetGlobalReg(SelectionDAG
   return DAG.getRegister(FI->getGlobalBaseReg(), Ty);
 }
 
+static SDValue getTargetNode(SDValue Op, SelectionDAG &DAG, unsigned Flag) {
+  EVT Ty = Op.getValueType();
+
+  if (GlobalAddressSDNode *N = dyn_cast<GlobalAddressSDNode>(Op))
+    return DAG.getTargetGlobalAddress(N->getGlobal(), Op.getDebugLoc(), Ty, 0,
+                                      Flag);
+  if (ExternalSymbolSDNode *N = dyn_cast<ExternalSymbolSDNode>(Op))
+    return DAG.getTargetExternalSymbol(N->getSymbol(), Ty, Flag);
+  if (BlockAddressSDNode *N = dyn_cast<BlockAddressSDNode>(Op))
+    return DAG.getTargetBlockAddress(N->getBlockAddress(), Ty, 0, Flag);
+  if (JumpTableSDNode *N = dyn_cast<JumpTableSDNode>(Op))
+    return DAG.getTargetJumpTable(N->getIndex(), Ty, Flag);
+  if (ConstantPoolSDNode *N = dyn_cast<ConstantPoolSDNode>(Op))
+    return DAG.getTargetConstantPool(N->getConstVal(), Ty, N->getAlignment(),
+                                     N->getOffset(), Flag);
+
+  llvm_unreachable("Unexpected node type.");
+  return SDValue();
+}
+
+static SDValue getAddrNonPIC(SDValue Op, SelectionDAG &DAG) {
+  DebugLoc DL = Op.getDebugLoc();
+  EVT Ty = Op.getValueType();
+  SDValue Hi = getTargetNode(Op, DAG, MipsII::MO_ABS_HI);
+  SDValue Lo = getTargetNode(Op, DAG, MipsII::MO_ABS_LO);
+  return DAG.getNode(ISD::ADD, DL, Ty,
+                     DAG.getNode(MipsISD::Hi, DL, Ty, Hi),
+                     DAG.getNode(MipsISD::Lo, DL, Ty, Lo));
+}
+
+static SDValue getAddrLocal(SDValue Op, SelectionDAG &DAG, bool HasMips64) {
+  DebugLoc DL = Op.getDebugLoc();
+  EVT Ty = Op.getValueType();
+  unsigned GOTFlag = HasMips64 ? MipsII::MO_GOT_PAGE : MipsII::MO_GOT;
+  SDValue GOT = DAG.getNode(MipsISD::Wrapper, DL, Ty, GetGlobalReg(DAG, Ty),
+                            getTargetNode(Op, DAG, GOTFlag));
+  SDValue Load = DAG.getLoad(Ty, DL, DAG.getEntryNode(), GOT,
+                             MachinePointerInfo::getGOT(), false, false, false,
+                             0);
+  unsigned LoFlag = HasMips64 ? MipsII::MO_GOT_OFST : MipsII::MO_ABS_LO;
+  SDValue Lo = DAG.getNode(MipsISD::Lo, DL, Ty, getTargetNode(Op, DAG, LoFlag));
+  return DAG.getNode(ISD::ADD, DL, Ty, Load, Lo);
+}
+
+static SDValue getAddrGlobal(SDValue Op, SelectionDAG &DAG, unsigned Flag) {
+  DebugLoc DL = Op.getDebugLoc();
+  EVT Ty = Op.getValueType();
+  SDValue Tgt = DAG.getNode(MipsISD::Wrapper, DL, Ty, GetGlobalReg(DAG, Ty),
+                            getTargetNode(Op, DAG, Flag));
+  return DAG.getLoad(Ty, DL, DAG.getEntryNode(), Tgt,
+                     MachinePointerInfo::getGOT(), false, false, false, 0);
+}
+
+static SDValue getAddrGlobalLargeGOT(SDValue Op, SelectionDAG &DAG,
+                                     unsigned HiFlag, unsigned LoFlag) {
+  DebugLoc DL = Op.getDebugLoc();
+  EVT Ty = Op.getValueType();
+  SDValue Hi = DAG.getNode(MipsISD::Hi, DL, Ty, getTargetNode(Op, DAG, HiFlag));
+  Hi = DAG.getNode(ISD::ADD, DL, Ty, Hi, GetGlobalReg(DAG, Ty));
+  SDValue Wrapper = DAG.getNode(MipsISD::Wrapper, DL, Ty, Hi,
+                                getTargetNode(Op, DAG, LoFlag));
+  return DAG.getLoad(Ty, DL, DAG.getEntryNode(), Wrapper,
+                     MachinePointerInfo::getGOT(), false, false, false, 0);
+}
+
 const char *MipsTargetLowering::getTargetNodeName(unsigned Opcode) const {
   switch (Opcode) {
   case MipsISD::JmpLink:           return "MipsISD::JmpLink";
@@ -1743,8 +1812,6 @@ SDValue MipsTargetLowering::LowerGlobalA
   const GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
 
   if (getTargetMachine().getRelocationModel() != Reloc::PIC_ && !IsN64) {
-    SDVTList VTs = DAG.getVTList(MVT::i32);
-
     const MipsTargetObjectFile &TLOF =
       (const MipsTargetObjectFile&)getObjFileLowering();
 
@@ -1752,69 +1819,33 @@ SDValue MipsTargetLowering::LowerGlobalA
     if (TLOF.IsGlobalInSmallSection(GV, getTargetMachine())) {
       SDValue GA = DAG.getTargetGlobalAddress(GV, dl, MVT::i32, 0,
                                               MipsII::MO_GPREL);
-      SDValue GPRelNode = DAG.getNode(MipsISD::GPRel, dl, VTs, &GA, 1);
+      SDValue GPRelNode = DAG.getNode(MipsISD::GPRel, dl,
+                                      DAG.getVTList(MVT::i32), &GA, 1);
       SDValue GPReg = DAG.getRegister(Mips::GP, MVT::i32);
       return DAG.getNode(ISD::ADD, dl, MVT::i32, GPReg, GPRelNode);
     }
+
     // %hi/%lo relocation
-    SDValue GAHi = DAG.getTargetGlobalAddress(GV, dl, MVT::i32, 0,
-                                              MipsII::MO_ABS_HI);
-    SDValue GALo = DAG.getTargetGlobalAddress(GV, dl, MVT::i32, 0,
-                                              MipsII::MO_ABS_LO);
-    SDValue HiPart = DAG.getNode(MipsISD::Hi, dl, VTs, &GAHi, 1);
-    SDValue Lo = DAG.getNode(MipsISD::Lo, dl, MVT::i32, GALo);
-    return DAG.getNode(ISD::ADD, dl, MVT::i32, HiPart, Lo);
-  }
-
-  EVT ValTy = Op.getValueType();
-  bool HasGotOfst = (GV->hasInternalLinkage() ||
-                     (GV->hasLocalLinkage() && !isa<Function>(GV)));
-  unsigned GotFlag = HasMips64 ?
-                     (HasGotOfst ? MipsII::MO_GOT_PAGE : MipsII::MO_GOT_DISP) :
-                     (HasGotOfst ? MipsII::MO_GOT : MipsII::MO_GOT16);
-  SDValue GA = DAG.getTargetGlobalAddress(GV, dl, ValTy, 0, GotFlag);
-  GA = DAG.getNode(MipsISD::Wrapper, dl, ValTy, GetGlobalReg(DAG, ValTy), GA);
-  SDValue ResNode = DAG.getLoad(ValTy, dl, DAG.getEntryNode(), GA,
-                                MachinePointerInfo(), false, false, false, 0);
-  // On functions and global targets not internal linked only
-  // a load from got/GP is necessary for PIC to work.
-  if (!HasGotOfst)
-    return ResNode;
-  SDValue GALo = DAG.getTargetGlobalAddress(GV, dl, ValTy, 0,
-                                            HasMips64 ? MipsII::MO_GOT_OFST :
-                                                        MipsII::MO_ABS_LO);
-  SDValue Lo = DAG.getNode(MipsISD::Lo, dl, ValTy, GALo);
-  return DAG.getNode(ISD::ADD, dl, ValTy, ResNode, Lo);
+    return getAddrNonPIC(Op, DAG);
+  }
+
+  if (GV->hasInternalLinkage() || (GV->hasLocalLinkage() && !isa<Function>(GV)))
+    return getAddrLocal(Op, DAG, HasMips64);
+
+  if (LargeGOT)
+    return getAddrGlobalLargeGOT(Op, DAG, MipsII::MO_GOT_HI16,
+                                 MipsII::MO_GOT_LO16);
+
+  return getAddrGlobal(Op, DAG,
+                       HasMips64 ? MipsII::MO_GOT_DISP : MipsII::MO_GOT16);
 }
 
 SDValue MipsTargetLowering::LowerBlockAddress(SDValue Op,
                                               SelectionDAG &DAG) const {
-  const BlockAddress *BA = cast<BlockAddressSDNode>(Op)->getBlockAddress();
-  // FIXME there isn't actually debug info here
-  DebugLoc dl = Op.getDebugLoc();
+  if (getTargetMachine().getRelocationModel() != Reloc::PIC_ && !IsN64)
+    return getAddrNonPIC(Op, DAG);
 
-  if (getTargetMachine().getRelocationModel() != Reloc::PIC_ && !IsN64) {
-    // %hi/%lo relocation
-    SDValue BAHi =
-      DAG.getTargetBlockAddress(BA, MVT::i32, 0, MipsII::MO_ABS_HI);
-    SDValue BALo =
-      DAG.getTargetBlockAddress(BA, MVT::i32, 0, MipsII::MO_ABS_LO);
-    SDValue Hi = DAG.getNode(MipsISD::Hi, dl, MVT::i32, BAHi);
-    SDValue Lo = DAG.getNode(MipsISD::Lo, dl, MVT::i32, BALo);
-    return DAG.getNode(ISD::ADD, dl, MVT::i32, Hi, Lo);
-  }
-
-  EVT ValTy = Op.getValueType();
-  unsigned GOTFlag = HasMips64 ? MipsII::MO_GOT_PAGE : MipsII::MO_GOT;
-  unsigned OFSTFlag = HasMips64 ? MipsII::MO_GOT_OFST : MipsII::MO_ABS_LO;
-  SDValue BAGOTOffset = DAG.getTargetBlockAddress(BA, ValTy, 0, GOTFlag);
-  BAGOTOffset = DAG.getNode(MipsISD::Wrapper, dl, ValTy,
-                            GetGlobalReg(DAG, ValTy), BAGOTOffset);
-  SDValue BALOOffset = DAG.getTargetBlockAddress(BA, ValTy, 0, OFSTFlag);
-  SDValue Load = DAG.getLoad(ValTy, dl, DAG.getEntryNode(), BAGOTOffset,
-                             MachinePointerInfo(), false, false, false, 0);
-  SDValue Lo = DAG.getNode(MipsISD::Lo, dl, ValTy, BALOOffset);
-  return DAG.getNode(ISD::ADD, dl, ValTy, Load, Lo);
+  return getAddrLocal(Op, DAG, HasMips64);
 }
 
 SDValue MipsTargetLowering::
@@ -1901,41 +1932,15 @@ LowerGlobalTLSAddress(SDValue Op, Select
 SDValue MipsTargetLowering::
 LowerJumpTable(SDValue Op, SelectionDAG &DAG) const
 {
-  SDValue HiPart, JTI, JTILo;
-  // FIXME there isn't actually debug info here
-  DebugLoc dl = Op.getDebugLoc();
-  bool IsPIC = getTargetMachine().getRelocationModel() == Reloc::PIC_;
-  EVT PtrVT = Op.getValueType();
-  JumpTableSDNode *JT = cast<JumpTableSDNode>(Op);
-
-  if (!IsPIC && !IsN64) {
-    JTI = DAG.getTargetJumpTable(JT->getIndex(), PtrVT, MipsII::MO_ABS_HI);
-    HiPart = DAG.getNode(MipsISD::Hi, dl, PtrVT, JTI);
-    JTILo = DAG.getTargetJumpTable(JT->getIndex(), PtrVT, MipsII::MO_ABS_LO);
-  } else {// Emit Load from Global Pointer
-    unsigned GOTFlag = HasMips64 ? MipsII::MO_GOT_PAGE : MipsII::MO_GOT;
-    unsigned OfstFlag = HasMips64 ? MipsII::MO_GOT_OFST : MipsII::MO_ABS_LO;
-    JTI = DAG.getTargetJumpTable(JT->getIndex(), PtrVT, GOTFlag);
-    JTI = DAG.getNode(MipsISD::Wrapper, dl, PtrVT, GetGlobalReg(DAG, PtrVT),
-                      JTI);
-    HiPart = DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), JTI,
-                         MachinePointerInfo(), false, false, false, 0);
-    JTILo = DAG.getTargetJumpTable(JT->getIndex(), PtrVT, OfstFlag);
-  }
+  if (getTargetMachine().getRelocationModel() != Reloc::PIC_ && !IsN64)
+    return getAddrNonPIC(Op, DAG);
 
-  SDValue Lo = DAG.getNode(MipsISD::Lo, dl, PtrVT, JTILo);
-  return DAG.getNode(ISD::ADD, dl, PtrVT, HiPart, Lo);
+  return getAddrLocal(Op, DAG, HasMips64);
 }
 
 SDValue MipsTargetLowering::
 LowerConstantPool(SDValue Op, SelectionDAG &DAG) const
 {
-  SDValue ResNode;
-  ConstantPoolSDNode *N = cast<ConstantPoolSDNode>(Op);
-  const Constant *C = N->getConstVal();
-  // FIXME there isn't actually debug info here
-  DebugLoc dl = Op.getDebugLoc();
-
   // gp_rel relocation
   // FIXME: we should reference the constant pool using small data sections,
   // but the asm printer currently doesn't support this feature without
@@ -1946,31 +1951,10 @@ LowerConstantPool(SDValue Op, SelectionD
   //  SDValue GOT = DAG.getGLOBAL_OFFSET_TABLE(MVT::i32);
   //  ResNode = DAG.getNode(ISD::ADD, MVT::i32, GOT, GPRelNode);
 
-  if (getTargetMachine().getRelocationModel() != Reloc::PIC_ && !IsN64) {
-    SDValue CPHi = DAG.getTargetConstantPool(C, MVT::i32, N->getAlignment(),
-                                             N->getOffset(), MipsII::MO_ABS_HI);
-    SDValue CPLo = DAG.getTargetConstantPool(C, MVT::i32, N->getAlignment(),
-                                             N->getOffset(), MipsII::MO_ABS_LO);
-    SDValue HiPart = DAG.getNode(MipsISD::Hi, dl, MVT::i32, CPHi);
-    SDValue Lo = DAG.getNode(MipsISD::Lo, dl, MVT::i32, CPLo);
-    ResNode = DAG.getNode(ISD::ADD, dl, MVT::i32, HiPart, Lo);
-  } else {
-    EVT ValTy = Op.getValueType();
-    unsigned GOTFlag = HasMips64 ? MipsII::MO_GOT_PAGE : MipsII::MO_GOT;
-    unsigned OFSTFlag = HasMips64 ? MipsII::MO_GOT_OFST : MipsII::MO_ABS_LO;
-    SDValue CP = DAG.getTargetConstantPool(C, ValTy, N->getAlignment(),
-                                           N->getOffset(), GOTFlag);
-    CP = DAG.getNode(MipsISD::Wrapper, dl, ValTy, GetGlobalReg(DAG, ValTy), CP);
-    SDValue Load = DAG.getLoad(ValTy, dl, DAG.getEntryNode(), CP,
-                               MachinePointerInfo::getConstantPool(), false,
-                               false, false, 0);
-    SDValue CPLo = DAG.getTargetConstantPool(C, ValTy, N->getAlignment(),
-                                             N->getOffset(), OFSTFlag);
-    SDValue Lo = DAG.getNode(MipsISD::Lo, dl, ValTy, CPLo);
-    ResNode = DAG.getNode(ISD::ADD, dl, ValTy, Load, Lo);
-  }
+  if (getTargetMachine().getRelocationModel() != Reloc::PIC_ && !IsN64)
+    return getAddrNonPIC(Op, DAG);
 
-  return ResNode;
+  return getAddrLocal(Op, DAG, HasMips64);
 }
 
 SDValue MipsTargetLowering::LowerVASTART(SDValue Op, SelectionDAG &DAG) const {
@@ -2862,60 +2846,41 @@ MipsTargetLowering::LowerCall(TargetLowe
   // If the callee is a GlobalAddress/ExternalSymbol node (quite common, every
   // direct call is) turn it into a TargetGlobalAddress/TargetExternalSymbol
   // node so that legalize doesn't hack it.
-  unsigned char OpFlag;
   bool IsPICCall = (IsN64 || IsPIC); // true if calls are translated to jalr $25
   bool GlobalOrExternal = false;
   SDValue CalleeLo;
 
   if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee)) {
-    if (IsPICCall && G->getGlobal()->hasInternalLinkage()) {
-      OpFlag = IsO32 ? MipsII::MO_GOT : MipsII::MO_GOT_PAGE;
-      unsigned char LoFlag = IsO32 ? MipsII::MO_ABS_LO : MipsII::MO_GOT_OFST;
+    if (IsPICCall) {
+      if (G->getGlobal()->hasInternalLinkage())
+        Callee = getAddrLocal(Callee, DAG, HasMips64);
+      else if (LargeGOT)
+        Callee = getAddrGlobalLargeGOT(Callee, DAG, MipsII::MO_CALL_HI16,
+                                       MipsII::MO_CALL_LO16);
+      else
+        Callee = getAddrGlobal(Callee, DAG, MipsII::MO_GOT_CALL);
+    } else
       Callee = DAG.getTargetGlobalAddress(G->getGlobal(), dl, getPointerTy(), 0,
-                                          OpFlag);
-      CalleeLo = DAG.getTargetGlobalAddress(G->getGlobal(), dl, getPointerTy(),
-                                            0, LoFlag);
-    } else {
-      OpFlag = IsPICCall ? MipsII::MO_GOT_CALL : MipsII::MO_NO_FLAG;
-      Callee = DAG.getTargetGlobalAddress(G->getGlobal(), dl,
-                                          getPointerTy(), 0, OpFlag);
-    }
-
+                                          MipsII::MO_NO_FLAG);
     GlobalOrExternal = true;
   }
   else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee)) {
-    if (IsN64 || (!IsO32 && IsPIC))
-      OpFlag = MipsII::MO_GOT_DISP;
-    else if (!IsPIC) // !N64 && static
-      OpFlag = MipsII::MO_NO_FLAG;
+    if (!IsN64 && !IsPIC) // !N64 && static
+      Callee = DAG.getTargetExternalSymbol(S->getSymbol(), getPointerTy(),
+                                            MipsII::MO_NO_FLAG);
+    else if (LargeGOT)
+      Callee = getAddrGlobalLargeGOT(Callee, DAG, MipsII::MO_CALL_HI16,
+                                     MipsII::MO_CALL_LO16);
+    else if (HasMips64)
+      Callee = getAddrGlobal(Callee, DAG, MipsII::MO_GOT_DISP);
     else // O32 & PIC
-      OpFlag = MipsII::MO_GOT_CALL;
-    Callee = DAG.getTargetExternalSymbol(S->getSymbol(), getPointerTy(),
-                                         OpFlag);
+      Callee = getAddrGlobal(Callee, DAG, MipsII::MO_GOT_CALL);
+
     GlobalOrExternal = true;
   }
 
   SDValue InFlag;
 
-  // Create nodes that load address of callee and copy it to T9
-  if (IsPICCall) {
-    if (GlobalOrExternal) {
-      // Load callee address
-      Callee = DAG.getNode(MipsISD::Wrapper, dl, getPointerTy(),
-                           GetGlobalReg(DAG, getPointerTy()), Callee);
-      SDValue LoadValue = DAG.getLoad(getPointerTy(), dl, DAG.getEntryNode(),
-                                      Callee, MachinePointerInfo::getGOT(),
-                                      false, false, false, 0);
-

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201212251300.qBPD0K7N058879>