svn commit: r259020 - in projects/uefi: bin/test contrib/gcc contrib/gcc/config/i386 contrib/gcc/config/rs6000 contrib/gcc/cp contrib/gcc/doc etc/mtree include sys/amd64/amd64 sys/conf sys/dev/drm2...
Ed Maste
emaste at FreeBSD.org
Thu Dec 5 23:19:02 UTC 2013
Author: emaste
Date: Thu Dec 5 23:18:54 2013
New Revision: 259020
URL: http://svnweb.freebsd.org/changeset/base/259020
Log:
Merge from HEAD at r259019
Sponsored by: The FreeBSD Foundation
Added:
projects/uefi/sys/dev/fb/fb_if.m
- copied unchanged from r259019, head/sys/dev/fb/fb_if.m
projects/uefi/sys/dev/fb/fbd.c
- copied unchanged from r259019, head/sys/dev/fb/fbd.c
projects/uefi/sys/dev/vt/
- copied from r259019, head/sys/dev/vt/
projects/uefi/sys/kern/subr_terminal.c
- copied unchanged from r259019, head/sys/kern/subr_terminal.c
projects/uefi/sys/sys/terminal.h
- copied unchanged from r259019, head/sys/sys/terminal.h
projects/uefi/tools/tools/vt/
- copied from r259019, head/tools/tools/vt/
Modified:
projects/uefi/bin/test/test.c
projects/uefi/contrib/gcc/ChangeLog.gcc43
projects/uefi/contrib/gcc/c-common.c
projects/uefi/contrib/gcc/c-common.h
projects/uefi/contrib/gcc/c-opts.c
projects/uefi/contrib/gcc/c-typeck.c
projects/uefi/contrib/gcc/c.opt
projects/uefi/contrib/gcc/config/i386/i386.c
projects/uefi/contrib/gcc/config/rs6000/altivec.h
projects/uefi/contrib/gcc/config/rs6000/rs6000-c.c
projects/uefi/contrib/gcc/cp/ChangeLog.gcc43
projects/uefi/contrib/gcc/cp/call.c
projects/uefi/contrib/gcc/cp/typeck.c
projects/uefi/contrib/gcc/doc/invoke.texi
projects/uefi/etc/mtree/BSD.include.dist
projects/uefi/include/Makefile
projects/uefi/sys/amd64/amd64/machdep.c
projects/uefi/sys/conf/files
projects/uefi/sys/conf/files.amd64
projects/uefi/sys/conf/files.arm
projects/uefi/sys/conf/files.i386
projects/uefi/sys/conf/files.powerpc
projects/uefi/sys/conf/files.sparc64
projects/uefi/sys/conf/kmod.mk
projects/uefi/sys/conf/options
projects/uefi/sys/dev/drm2/drm_fb_helper.c
projects/uefi/sys/dev/drm2/drm_os_freebsd.h
projects/uefi/sys/dev/drm2/i915/i915_drv.c
projects/uefi/sys/dev/drm2/i915/intel_fb.c
projects/uefi/sys/dev/drm2/radeon/radeon.h
projects/uefi/sys/dev/drm2/radeon/radeon_drv.c
projects/uefi/sys/dev/drm2/radeon/radeon_fb.c
projects/uefi/sys/dev/drm2/radeon/radeon_pm.c
projects/uefi/sys/i386/i386/machdep.c
projects/uefi/sys/modules/drm2/i915kms/Makefile
projects/uefi/sys/modules/drm2/radeonkms/Makefile
projects/uefi/sys/pc98/pc98/machdep.c
projects/uefi/sys/powerpc/fpu/fpu_emu.c
projects/uefi/sys/powerpc/include/pmap.h
projects/uefi/sys/powerpc/powerpc/platform.c
projects/uefi/sys/powerpc/pseries/platform_chrp.c
projects/uefi/sys/security/audit/audit_bsm_klib.c
projects/uefi/sys/sparc64/sparc64/machdep.c
projects/uefi/sys/sys/consio.h
projects/uefi/sys/sys/eventhandler.h
projects/uefi/sys/sys/fbio.h
projects/uefi/sys/sys/tty.h
projects/uefi/sys/teken/teken.c
projects/uefi/sys/teken/teken.h
projects/uefi/sys/teken/teken_subr.h
projects/uefi/sys/x86/include/mptable.h
projects/uefi/usr.sbin/bhyve/mptbl.c
Directory Properties:
projects/uefi/ (props changed)
projects/uefi/contrib/gcc/ (props changed)
projects/uefi/etc/ (props changed)
projects/uefi/include/ (props changed)
projects/uefi/sys/ (props changed)
projects/uefi/sys/conf/ (props changed)
projects/uefi/usr.sbin/bhyve/ (props changed)
Modified: projects/uefi/bin/test/test.c
==============================================================================
--- projects/uefi/bin/test/test.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/bin/test/test.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -172,7 +172,7 @@ static char **t_wp;
static int parenlevel;
static int aexpr(enum token);
-static int binop(void);
+static int binop(enum token);
static int equalf(const char *, const char *);
static int filstat(char *, enum token);
static int getn(const char *);
@@ -312,21 +312,20 @@ primary(enum token n)
}
}
- if (TOKEN_TYPE(t_lex(nargc > 0 ? t_wp[1] : NULL)) == BINOP)
- return binop();
+ nn = t_lex(nargc > 0 ? t_wp[1] : NULL);
+ if (TOKEN_TYPE(nn) == BINOP)
+ return binop(nn);
return strlen(*t_wp) > 0;
}
static int
-binop(void)
+binop(enum token n)
{
const char *opnd1, *op, *opnd2;
- enum token n;
opnd1 = *t_wp;
- op = nargc > 0 ? t_wp[1] : NULL;
- n = t_lex(nargc > 0 ? (--nargc, *++t_wp) : NULL);
+ op = nargc > 0 ? (--nargc, *++t_wp) : NULL;
if ((opnd2 = nargc > 0 ? (--nargc, *++t_wp) : NULL) == NULL)
syntax(op, "argument expected");
Modified: projects/uefi/contrib/gcc/ChangeLog.gcc43
==============================================================================
--- projects/uefi/contrib/gcc/ChangeLog.gcc43 Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/ChangeLog.gcc43 Thu Dec 5 23:18:54 2013 (r259020)
@@ -389,6 +389,36 @@
* config.gcc: Support core2 processor.
+2007-01-11 Joseph Myers <joseph at codesourcery.com> (r120688)
+
+ * c-common.c (vector_types_convertible_p): Treat opaque types as
+ always convertible if they have the same size, but not otherwise.
+
+2007-01-08 Mark Shinwell <shinwell at codesourcery.com> (r120572)
+
+ * c.opt: Add -flax-vector-conversions.
+ * c-typeck.c (convert_for_assignment): Pass flag to
+ vector_types_convertible_p to allow emission of note.
+ (digest_init): Likewise.
+ * c-opts.c: Handle -flax-vector-conversions.
+ * c-common.c (flag_lax_vector_conversions): New.
+ (vector_types_convertible_p): Unless -flax-vector conversions
+ has been passed, disallow conversions between vectors with
+ differing numbers of subparts and/or element types. If such
+ a conversion is disallowed, possibly emit a note on the first
+ occasion only to inform the user of -flax-vector-conversions.
+ The new last argument specifies this.
+ * c-common.h (flag_lax_vector_conversions): New.
+ (vector_types_convertible_p): Add extra argument.
+ * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
+ char_type_node for V*QI type vectors.
+ * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
+ Update to satisfy new typechecking rules.
+ * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
+ C and C++ variants.
+ * doc/invoke.texi (C Dialect Options): Document
+ -flax-vector-conversions.
+
2007-01-05 Manuel Lopez-Ibanez <manu at gcc.gnu.org> (r120505)
PR c/19978
Modified: projects/uefi/contrib/gcc/c-common.c
==============================================================================
--- projects/uefi/contrib/gcc/c-common.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/c-common.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -254,6 +254,10 @@ int flag_short_double;
int flag_short_wchar;
+/* Nonzero means allow implicit conversions between vectors with
+ differing numbers of subparts and/or differing element types. */
+int flag_lax_vector_conversions;
+
/* Nonzero means allow Microsoft extensions without warnings or errors. */
int flag_ms_extensions;
@@ -1095,18 +1099,45 @@ constant_fits_type_p (tree c, tree type)
return !TREE_OVERFLOW (c);
}
-/* Nonzero if vector types T1 and T2 can be converted to each other
- without an explicit cast. */
-int
-vector_types_convertible_p (tree t1, tree t2)
+
+/* True if vector types T1 and T2 can be converted to each other
+ without an explicit cast. If EMIT_LAX_NOTE is true, and T1 and T2
+ can only be converted with -flax-vector-conversions yet that is not
+ in effect, emit a note telling the user about that option if such
+ a note has not previously been emitted. */
+bool
+vector_types_convertible_p (tree t1, tree t2, bool emit_lax_note)
{
- return targetm.vector_opaque_p (t1)
- || targetm.vector_opaque_p (t2)
- || (tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2))
- && (TREE_CODE (TREE_TYPE (t1)) != REAL_TYPE ||
- TYPE_PRECISION (t1) == TYPE_PRECISION (t2))
- && INTEGRAL_TYPE_P (TREE_TYPE (t1))
- == INTEGRAL_TYPE_P (TREE_TYPE (t2)));
+ static bool emitted_lax_note = false;
+ bool convertible_lax;
+
+ if ((targetm.vector_opaque_p (t1) || targetm.vector_opaque_p (t2))
+ && tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2)))
+ return true;
+
+ convertible_lax =
+ (tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2))
+ && (TREE_CODE (TREE_TYPE (t1)) != REAL_TYPE ||
+ TYPE_PRECISION (t1) == TYPE_PRECISION (t2))
+ && (INTEGRAL_TYPE_P (TREE_TYPE (t1))
+ == INTEGRAL_TYPE_P (TREE_TYPE (t2))));
+
+ if (!convertible_lax || flag_lax_vector_conversions)
+ return convertible_lax;
+
+ if (TYPE_VECTOR_SUBPARTS (t1) == TYPE_VECTOR_SUBPARTS (t2)
+ && comptypes (TREE_TYPE (t1), TREE_TYPE (t2)))
+ return true;
+
+ if (emit_lax_note && !emitted_lax_note)
+ {
+ emitted_lax_note = true;
+ inform ("use -flax-vector-conversions to permit "
+ "conversions between vectors with differing "
+ "element types or numbers of subparts");
+ }
+
+ return false;
}
/* Convert EXPR to TYPE, warning about conversion problems with constants.
Modified: projects/uefi/contrib/gcc/c-common.h
==============================================================================
--- projects/uefi/contrib/gcc/c-common.h Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/c-common.h Thu Dec 5 23:18:54 2013 (r259020)
@@ -389,6 +389,10 @@ extern int flag_short_double;
extern int flag_short_wchar;
+/* Nonzero means allow implicit conversions between vectors with
+ differing numbers of subparts and/or differing element types. */
+extern int flag_lax_vector_conversions;
+
/* Nonzero means allow Microsoft extensions without warnings or errors. */
extern int flag_ms_extensions;
@@ -791,7 +795,7 @@ extern tree finish_label_address_expr (t
extern tree lookup_label (tree);
extern tree lookup_name (tree);
-extern int vector_types_convertible_p (tree t1, tree t2);
+extern bool vector_types_convertible_p (tree t1, tree t2, bool emit_lax_note);
extern rtx c_expand_expr (tree, rtx, enum machine_mode, int, rtx *);
Modified: projects/uefi/contrib/gcc/c-opts.c
==============================================================================
--- projects/uefi/contrib/gcc/c-opts.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/c-opts.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -710,6 +710,10 @@ c_common_handle_option (size_t scode, co
flag_implicit_templates = value;
break;
+ case OPT_flax_vector_conversions:
+ flag_lax_vector_conversions = value;
+ break;
+
case OPT_fms_extensions:
flag_ms_extensions = value;
break;
Modified: projects/uefi/contrib/gcc/c-typeck.c
==============================================================================
--- projects/uefi/contrib/gcc/c-typeck.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/c-typeck.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -3893,7 +3893,7 @@ convert_for_assignment (tree type, tree
}
/* Some types can interconvert without explicit casts. */
else if (codel == VECTOR_TYPE && coder == VECTOR_TYPE
- && vector_types_convertible_p (type, TREE_TYPE (rhs)))
+ && vector_types_convertible_p (type, TREE_TYPE (rhs), true))
return convert (type, rhs);
/* Arithmetic types all interconvert, and enum is treated like int. */
else if ((codel == INTEGER_TYPE || codel == REAL_TYPE
@@ -4629,7 +4629,7 @@ digest_init (tree type, tree init, bool
below and handle as a constructor. */
if (code == VECTOR_TYPE
&& TREE_CODE (TREE_TYPE (inside_init)) == VECTOR_TYPE
- && vector_types_convertible_p (TREE_TYPE (inside_init), type)
+ && vector_types_convertible_p (TREE_TYPE (inside_init), type, true)
&& TREE_CONSTANT (inside_init))
{
if (TREE_CODE (inside_init) == VECTOR_CST
Modified: projects/uefi/contrib/gcc/c.opt
==============================================================================
--- projects/uefi/contrib/gcc/c.opt Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/c.opt Thu Dec 5 23:18:54 2013 (r259020)
@@ -584,6 +584,10 @@ Inject friend functions into enclosing n
flabels-ok
C++ ObjC++
+flax-vector-conversions
+C ObjC C++ ObjC++
+Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types.
+
fms-extensions
C ObjC C++ ObjC++
Don't warn about uses of Microsoft extensions
Modified: projects/uefi/contrib/gcc/config/i386/i386.c
==============================================================================
--- projects/uefi/contrib/gcc/config/i386/i386.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/config/i386/i386.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -15408,7 +15408,7 @@ ix86_init_mmx_sse_builtins (void)
const struct builtin_description * d;
size_t i;
- tree V16QI_type_node = build_vector_type_for_mode (intQI_type_node, V16QImode);
+ tree V16QI_type_node = build_vector_type_for_mode (char_type_node, V16QImode);
tree V2SI_type_node = build_vector_type_for_mode (intSI_type_node, V2SImode);
tree V2SF_type_node = build_vector_type_for_mode (float_type_node, V2SFmode);
tree V2DI_type_node
@@ -15417,7 +15417,7 @@ ix86_init_mmx_sse_builtins (void)
tree V4SF_type_node = build_vector_type_for_mode (float_type_node, V4SFmode);
tree V4SI_type_node = build_vector_type_for_mode (intSI_type_node, V4SImode);
tree V4HI_type_node = build_vector_type_for_mode (intHI_type_node, V4HImode);
- tree V8QI_type_node = build_vector_type_for_mode (intQI_type_node, V8QImode);
+ tree V8QI_type_node = build_vector_type_for_mode (char_type_node, V8QImode);
tree V8HI_type_node = build_vector_type_for_mode (intHI_type_node, V8HImode);
tree pchar_type_node = build_pointer_type (char_type_node);
Modified: projects/uefi/contrib/gcc/config/rs6000/altivec.h
==============================================================================
--- projects/uefi/contrib/gcc/config/rs6000/altivec.h Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/config/rs6000/altivec.h Thu Dec 5 23:18:54 2013 (r259020)
@@ -332,7 +332,7 @@ NAME (T a1, U a2) \
__altivec_binary_pred(vec_cmplt,
__builtin_vec_cmpgt (a2, a1))
__altivec_binary_pred(vec_cmple,
- __builtin_altivec_cmpge (a2, a1))
+ __builtin_vec_cmpge (a2, a1))
__altivec_scalar_pred(vec_all_in,
__builtin_altivec_vcmpbfp_p (__CR6_EQ, a1, a2))
@@ -402,7 +402,7 @@ __altivec_scalar_pred(vec_any_nle,
#undef __altivec_binary_pred
#else
#define vec_cmplt(a1, a2) __builtin_vec_cmpgt ((a2), (a1))
-#define vec_cmple(a1, a2) __builtin_altivec_vcmpgefp ((a2), (a1))
+#define vec_cmple(a1, a2) __builtin_vec_cmpge ((a2), (a1))
#define vec_all_in(a1, a2) __builtin_altivec_vcmpbfp_p (__CR6_EQ, (a1), (a2))
#define vec_any_out(a1, a2) __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, (a1), (a2))
Modified: projects/uefi/contrib/gcc/config/rs6000/rs6000-c.c
==============================================================================
--- projects/uefi/contrib/gcc/config/rs6000/rs6000-c.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/config/rs6000/rs6000-c.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -222,17 +222,17 @@ const struct altivec_builtin_types altiv
{ ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHSB,
RS6000_BTI_V8HI, RS6000_BTI_V16QI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHSB,
- RS6000_BTI_V8HI, RS6000_BTI_bool_V16QI, 0, 0 },
+ RS6000_BTI_bool_V8HI, RS6000_BTI_bool_V16QI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHSH,
RS6000_BTI_V4SI, RS6000_BTI_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHSH,
- RS6000_BTI_V4SI, RS6000_BTI_bool_V8HI, 0, 0 },
+ RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHPX,
RS6000_BTI_unsigned_V4SI, RS6000_BTI_pixel_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_VUPKHSH, ALTIVEC_BUILTIN_VUPKHSH,
RS6000_BTI_V4SI, RS6000_BTI_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_VUPKHSH, ALTIVEC_BUILTIN_VUPKHSH,
- RS6000_BTI_V4SI, RS6000_BTI_bool_V8HI, 0, 0 },
+ RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_VUPKHPX, ALTIVEC_BUILTIN_VUPKHPX,
RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_VUPKHPX, ALTIVEC_BUILTIN_VUPKHPX,
@@ -240,17 +240,17 @@ const struct altivec_builtin_types altiv
{ ALTIVEC_BUILTIN_VEC_VUPKHSB, ALTIVEC_BUILTIN_VUPKHSB,
RS6000_BTI_V8HI, RS6000_BTI_V16QI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_VUPKHSB, ALTIVEC_BUILTIN_VUPKHSB,
- RS6000_BTI_V8HI, RS6000_BTI_bool_V16QI, 0, 0 },
+ RS6000_BTI_bool_V8HI, RS6000_BTI_bool_V16QI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLSB,
RS6000_BTI_V8HI, RS6000_BTI_V16QI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLSB,
- RS6000_BTI_V8HI, RS6000_BTI_bool_V16QI, 0, 0 },
+ RS6000_BTI_bool_V8HI, RS6000_BTI_bool_V16QI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLPX,
RS6000_BTI_unsigned_V4SI, RS6000_BTI_pixel_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLSH,
RS6000_BTI_V4SI, RS6000_BTI_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLSH,
- RS6000_BTI_V4SI, RS6000_BTI_bool_V8HI, 0, 0 },
+ RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_VUPKLPX, ALTIVEC_BUILTIN_VUPKLPX,
RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_VUPKLPX, ALTIVEC_BUILTIN_VUPKLPX,
@@ -258,11 +258,11 @@ const struct altivec_builtin_types altiv
{ ALTIVEC_BUILTIN_VEC_VUPKLSH, ALTIVEC_BUILTIN_VUPKLSH,
RS6000_BTI_V4SI, RS6000_BTI_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_VUPKLSH, ALTIVEC_BUILTIN_VUPKLSH,
- RS6000_BTI_V4SI, RS6000_BTI_bool_V8HI, 0, 0 },
+ RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V8HI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_VUPKLSB, ALTIVEC_BUILTIN_VUPKLSB,
RS6000_BTI_V8HI, RS6000_BTI_V16QI, 0, 0 },
{ ALTIVEC_BUILTIN_VEC_VUPKLSB, ALTIVEC_BUILTIN_VUPKLSB,
- RS6000_BTI_V8HI, RS6000_BTI_bool_V16QI, 0, 0 },
+ RS6000_BTI_bool_V8HI, RS6000_BTI_bool_V16QI, 0, 0 },
/* Binary AltiVec builtins. */
{ ALTIVEC_BUILTIN_VEC_ADD, ALTIVEC_BUILTIN_VADDUBM,
@@ -576,31 +576,23 @@ const struct altivec_builtin_types altiv
{ ALTIVEC_BUILTIN_VEC_CMPEQ, ALTIVEC_BUILTIN_VCMPEQFP,
RS6000_BTI_bool_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPEQFP, ALTIVEC_BUILTIN_VCMPEQFP,
- RS6000_BTI_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 },
- { ALTIVEC_BUILTIN_VEC_VCMPEQUW, ALTIVEC_BUILTIN_VCMPEQUW,
- RS6000_BTI_V4SI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 },
- { ALTIVEC_BUILTIN_VEC_VCMPEQUW, ALTIVEC_BUILTIN_VCMPEQUW,
- RS6000_BTI_V4SI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 },
+ RS6000_BTI_bool_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 },
+
{ ALTIVEC_BUILTIN_VEC_VCMPEQUW, ALTIVEC_BUILTIN_VCMPEQUW,
RS6000_BTI_bool_V4SI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPEQUW, ALTIVEC_BUILTIN_VCMPEQUW,
RS6000_BTI_bool_V4SI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 },
- { ALTIVEC_BUILTIN_VEC_VCMPEQUH, ALTIVEC_BUILTIN_VCMPEQUH,
- RS6000_BTI_V8HI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 },
- { ALTIVEC_BUILTIN_VEC_VCMPEQUH, ALTIVEC_BUILTIN_VCMPEQUH,
- RS6000_BTI_V8HI, RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V8HI, 0 },
+
{ ALTIVEC_BUILTIN_VEC_VCMPEQUH, ALTIVEC_BUILTIN_VCMPEQUH,
RS6000_BTI_bool_V8HI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPEQUH, ALTIVEC_BUILTIN_VCMPEQUH,
RS6000_BTI_bool_V8HI, RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V8HI, 0 },
- { ALTIVEC_BUILTIN_VEC_VCMPEQUB, ALTIVEC_BUILTIN_VCMPEQUB,
- RS6000_BTI_V16QI, RS6000_BTI_V16QI, RS6000_BTI_V16QI, 0 },
- { ALTIVEC_BUILTIN_VEC_VCMPEQUB, ALTIVEC_BUILTIN_VCMPEQUB,
- RS6000_BTI_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 },
+
{ ALTIVEC_BUILTIN_VEC_VCMPEQUB, ALTIVEC_BUILTIN_VCMPEQUB,
RS6000_BTI_bool_V16QI, RS6000_BTI_V16QI, RS6000_BTI_V16QI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPEQUB, ALTIVEC_BUILTIN_VCMPEQUB,
RS6000_BTI_bool_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 },
+
{ ALTIVEC_BUILTIN_VEC_CMPGE, ALTIVEC_BUILTIN_VCMPGEFP,
RS6000_BTI_bool_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 },
{ ALTIVEC_BUILTIN_VEC_CMPGT, ALTIVEC_BUILTIN_VCMPGTUB,
@@ -618,29 +610,29 @@ const struct altivec_builtin_types altiv
{ ALTIVEC_BUILTIN_VEC_CMPGT, ALTIVEC_BUILTIN_VCMPGTFP,
RS6000_BTI_bool_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTFP, ALTIVEC_BUILTIN_VCMPGTFP,
- RS6000_BTI_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 },
+ RS6000_BTI_bool_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTSW, ALTIVEC_BUILTIN_VCMPGTSW,
- RS6000_BTI_V4SI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 },
+ RS6000_BTI_bool_V4SI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTSW, ALTIVEC_BUILTIN_VCMPGTSW,
RS6000_BTI_bool_V4SI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTUW, ALTIVEC_BUILTIN_VCMPGTUW,
- RS6000_BTI_V4SI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 },
+ RS6000_BTI_bool_V4SI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTUW, ALTIVEC_BUILTIN_VCMPGTUW,
RS6000_BTI_bool_V4SI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTSH, ALTIVEC_BUILTIN_VCMPGTSH,
- RS6000_BTI_V8HI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 },
+ RS6000_BTI_bool_V8HI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTSH, ALTIVEC_BUILTIN_VCMPGTSH,
RS6000_BTI_bool_V8HI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTUH, ALTIVEC_BUILTIN_VCMPGTUH,
- RS6000_BTI_V8HI, RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V8HI, 0 },
+ RS6000_BTI_bool_V8HI, RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V8HI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTUH, ALTIVEC_BUILTIN_VCMPGTUH,
RS6000_BTI_bool_V8HI, RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V8HI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTSB, ALTIVEC_BUILTIN_VCMPGTSB,
- RS6000_BTI_V16QI, RS6000_BTI_V16QI, RS6000_BTI_V16QI, 0 },
+ RS6000_BTI_bool_V16QI, RS6000_BTI_V16QI, RS6000_BTI_V16QI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTSB, ALTIVEC_BUILTIN_VCMPGTSB,
RS6000_BTI_bool_V16QI, RS6000_BTI_V16QI, RS6000_BTI_V16QI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTUB, ALTIVEC_BUILTIN_VCMPGTUB,
- RS6000_BTI_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 },
+ RS6000_BTI_bool_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 },
{ ALTIVEC_BUILTIN_VEC_VCMPGTUB, ALTIVEC_BUILTIN_VCMPGTUB,
RS6000_BTI_bool_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 },
{ ALTIVEC_BUILTIN_VEC_CMPLE, ALTIVEC_BUILTIN_VCMPGEFP,
Modified: projects/uefi/contrib/gcc/cp/ChangeLog.gcc43
==============================================================================
--- projects/uefi/contrib/gcc/cp/ChangeLog.gcc43 Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/cp/ChangeLog.gcc43 Thu Dec 5 23:18:54 2013 (r259020)
@@ -29,14 +29,23 @@
* decl.c (compute_array_index_type): New warning flag warn_vla.
-2007-01-07 Manuel Lopez-Ibanez <manu at gcc.gnu.org>
+2007-01-08 Mark Shinwell <shinwell at codesourcery.com> (r120572)
+
+ * call.c (standard_conversion): Pass flag to
+ vector_types_convertible_p to disallow emission of note.
+ * typeck.c (convert_for_assignment): Pass flag to
+ vector_types_convertible_p to allow emission of note.
+ (ptr_reasonably_similar): Pass flag to vector_types_convertible_p
+ to disallow emission of note.
+
+2007-01-07 Manuel Lopez-Ibanez <manu at gcc.gnu.org> (r120558)
PR c++/28986
* typeck.c (build_binary_op): Call overflow_warning if
TREE_OVERFLOW_P is true for the result and not for any of the
operands.
-2007-01-05 Manuel Lopez-Ibanez <manu at gcc.gnu.org>
+2007-01-05 Manuel Lopez-Ibanez <manu at gcc.gnu.org> (r120505)
PR c/19978
* semantics.c (finish_unary_op_expr): Warn only if result
Modified: projects/uefi/contrib/gcc/cp/call.c
==============================================================================
--- projects/uefi/contrib/gcc/cp/call.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/cp/call.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -838,7 +838,7 @@ standard_conversion (tree to, tree from,
conv->rank = cr_promotion;
}
else if (fcode == VECTOR_TYPE && tcode == VECTOR_TYPE
- && vector_types_convertible_p (from, to))
+ && vector_types_convertible_p (from, to, false))
return build_conv (ck_std, to, conv);
else if (!(flags & LOOKUP_CONSTRUCTOR_CALLABLE)
&& IS_AGGR_TYPE (to) && IS_AGGR_TYPE (from)
Modified: projects/uefi/contrib/gcc/cp/typeck.c
==============================================================================
--- projects/uefi/contrib/gcc/cp/typeck.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/cp/typeck.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -6229,7 +6229,7 @@ convert_for_assignment (tree type, tree
coder = TREE_CODE (rhstype);
if (TREE_CODE (type) == VECTOR_TYPE && coder == VECTOR_TYPE
- && vector_types_convertible_p (type, rhstype))
+ && vector_types_convertible_p (type, rhstype, true))
return convert (type, rhs);
if (rhs == error_mark_node || rhstype == error_mark_node)
@@ -6799,7 +6799,7 @@ ptr_reasonably_similar (tree to, tree fr
continue;
if (TREE_CODE (to) == VECTOR_TYPE
- && vector_types_convertible_p (to, from))
+ && vector_types_convertible_p (to, from, false))
return 1;
if (TREE_CODE (to) == INTEGER_TYPE
Modified: projects/uefi/contrib/gcc/doc/invoke.texi
==============================================================================
--- projects/uefi/contrib/gcc/doc/invoke.texi Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/contrib/gcc/doc/invoke.texi Thu Dec 5 23:18:54 2013 (r259020)
@@ -167,7 +167,7 @@ in the following sections.
-fno-asm -fno-builtin -fno-builtin- at var{function} @gol
-fhosted -ffreestanding -fopenmp -fms-extensions @gol
-trigraphs -no-integrated-cpp -traditional -traditional-cpp @gol
--fallow-single-precision -fcond-mismatch @gol
+-fallow-single-precision -fcond-mismatch -flax-vector-conversions @gol
-fsigned-bitfields -fsigned-char @gol
-funsigned-bitfields -funsigned-char}
@@ -1337,6 +1337,12 @@ Allow conditional expressions with misma
third arguments. The value of such an expression is void. This option
is not supported for C++.
+ at item -flax-vector-conversions
+ at opindex flax-vector-conversions
+Allow implicit conversions between vectors with differing numbers of
+elements and/or incompatible element types. This option should not be
+used for new code.
+
@item -funsigned-char
@opindex funsigned-char
Let the type @code{char} be unsigned, like @code{unsigned char}.
Modified: projects/uefi/etc/mtree/BSD.include.dist
==============================================================================
--- projects/uefi/etc/mtree/BSD.include.dist Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/etc/mtree/BSD.include.dist Thu Dec 5 23:18:54 2013 (r259020)
@@ -329,6 +329,8 @@
..
sys
..
+ teken
+ ..
ufs
ffs
..
Modified: projects/uefi/include/Makefile
==============================================================================
--- projects/uefi/include/Makefile Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/include/Makefile Thu Dec 5 23:18:54 2013 (r259020)
@@ -225,6 +225,9 @@ copies:
cd ${.CURDIR}/../sys/rpc; \
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 types.h \
${DESTDIR}${INCLUDEDIR}/rpc
+ cd ${.CURDIR}/../sys/teken; \
+ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 teken.h \
+ ${DESTDIR}${INCLUDEDIR}/teken
symlinks:
@${ECHO} "Setting up symlinks to kernel source tree..."
Modified: projects/uefi/sys/amd64/amd64/machdep.c
==============================================================================
--- projects/uefi/sys/amd64/amd64/machdep.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/amd64/amd64/machdep.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -867,7 +867,7 @@ cpu_idle(int busy)
/* Call main idle method. */
cpu_idle_fn(sbt);
- /* Switch timers mack into active mode. */
+ /* Switch timers back into active mode. */
if (!busy) {
cpu_activeclock();
critical_exit();
Modified: projects/uefi/sys/conf/files
==============================================================================
--- projects/uefi/sys/conf/files Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/conf/files Thu Dec 5 23:18:54 2013 (r259020)
@@ -82,7 +82,7 @@ pccarddevs.h standard \
compile-with "${AWK} -f $S/tools/pccarddevs2h.awk $S/dev/pccard/pccarddevs" \
no-obj no-implicit-rule before-depend \
clean "pccarddevs.h"
-teken_state.h optional sc \
+teken_state.h optional sc | vt \
dependency "$S/teken/gensequences $S/teken/sequences" \
compile-with "${AWK} -f $S/teken/gensequences $S/teken/sequences > teken_state.h" \
no-obj no-implicit-rule before-depend \
@@ -1396,6 +1396,8 @@ dev/ex/if_ex_isa.c optional ex isa
dev/ex/if_ex_pccard.c optional ex pccard
dev/exca/exca.c optional cbb
dev/fatm/if_fatm.c optional fatm pci
+dev/fb/fbd.c optional fbd | vt
+dev/fb/fb_if.m optional fbd | vt
dev/fb/splash.c optional splash
dev/fdt/fdt_common.c optional fdt
dev/fdt/fdt_ic_if.m optional fdt
@@ -2461,6 +2463,17 @@ dev/vge/if_vge.c optional vge
dev/vkbd/vkbd.c optional vkbd
dev/vr/if_vr.c optional vr pci
+dev/vt/colors/vt_termcolors.c optional vt
+dev/vt/font/vt_font_default.c optional vt
+dev/vt/font/vt_mouse_cursor.c optional vt
+dev/vt/hw/fb/vt_fb.c optional vt
+dev/vt/hw/vga/vga.c optional vt vt_vga
+dev/vt/logo/logo_freebsd.c optional vt
+dev/vt/vt_buf.c optional vt
+dev/vt/vt_consolectl.c optional vt
+dev/vt/vt_core.c optional vt
+dev/vt/vt_font.c optional vt
+dev/vt/vt_sysmouse.c optional vt
dev/vte/if_vte.c optional vte pci
dev/vx/if_vx.c optional vx
dev/vx/if_vx_eisa.c optional vx eisa
@@ -2897,6 +2910,7 @@ kern/subr_sleepqueue.c standard
kern/subr_smp.c standard
kern/subr_stack.c optional ddb | stack | ktr
kern/subr_taskqueue.c standard
+kern/subr_terminal.c optional vt
kern/subr_trap.c standard
kern/subr_turnstile.c standard
kern/subr_uio.c standard
@@ -3796,7 +3810,7 @@ security/mac_portacl/mac_portacl.c optio
security/mac_seeotheruids/mac_seeotheruids.c optional mac_seeotheruids
security/mac_stub/mac_stub.c optional mac_stub
security/mac_test/mac_test.c optional mac_test
-teken/teken.c optional sc
+teken/teken.c optional sc | vt
ufs/ffs/ffs_alloc.c optional ffs
ufs/ffs/ffs_balloc.c optional ffs
ufs/ffs/ffs_inode.c optional ffs
Modified: projects/uefi/sys/conf/files.amd64
==============================================================================
--- projects/uefi/sys/conf/files.amd64 Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/conf/files.amd64 Thu Dec 5 23:18:54 2013 (r259020)
@@ -242,7 +242,7 @@ dev/hyperv/vmbus/hv_connection.c optio
dev/hyperv/vmbus/hv_hv.c optional hyperv
dev/hyperv/vmbus/hv_ring_buffer.c optional hyperv
dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c optional hyperv
-dev/kbd/kbd.c optional atkbd | sc | ukbd
+dev/kbd/kbd.c optional atkbd | sc | ukbd | vt
dev/lindev/full.c optional lindev
dev/lindev/lindev.c optional lindev
dev/nfe/if_nfe.c optional nfe pci
Modified: projects/uefi/sys/conf/files.arm
==============================================================================
--- projects/uefi/sys/conf/files.arm Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/conf/files.arm Thu Dec 5 23:18:54 2013 (r259020)
@@ -62,7 +62,7 @@ crypto/blowfish/bf_enc.c optional crypto
crypto/des/des_enc.c optional crypto | ipsec | netsmb
dev/fb/fb.c optional sc
dev/hwpmc/hwpmc_arm.c optional hwpmc
-dev/kbd/kbd.c optional sc
+dev/kbd/kbd.c optional sc | vt
dev/syscons/scgfbrndr.c optional sc
dev/syscons/scterm-teken.c optional sc
dev/syscons/scvtb.c optional sc
Modified: projects/uefi/sys/conf/files.i386
==============================================================================
--- projects/uefi/sys/conf/files.i386 Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/conf/files.i386 Thu Dec 5 23:18:54 2013 (r259020)
@@ -249,7 +249,7 @@ dev/ipmi/ipmi_smbios.c optional ipmi
dev/ipmi/ipmi_ssif.c optional ipmi smbus
dev/ipmi/ipmi_pci.c optional ipmi pci
dev/ipmi/ipmi_linux.c optional ipmi compat_linux
-dev/kbd/kbd.c optional atkbd | sc | ukbd
+dev/kbd/kbd.c optional atkbd | sc | ukbd | vt
dev/le/if_le_isa.c optional le isa
dev/lindev/full.c optional lindev
dev/lindev/lindev.c optional lindev
@@ -293,6 +293,7 @@ dev/viawd/viawd.c optional viawd
dev/vmware/vmxnet3/if_vmx.c optional vmx
dev/acpica/acpi_if.m standard
dev/acpi_support/acpi_wmi_if.m standard
+dev/vt/hw/xboxfb/xboxfb.c optional vt_xboxfb
dev/wbwd/wbwd.c optional wbwd
dev/wpi/if_wpi.c optional wpi
dev/isci/isci.c optional isci
Modified: projects/uefi/sys/conf/files.powerpc
==============================================================================
--- projects/uefi/sys/conf/files.powerpc Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/conf/files.powerpc Thu Dec 5 23:18:54 2013 (r259020)
@@ -35,7 +35,7 @@ dev/iicbus/ad7417.c optional ad7417 pow
dev/iicbus/ds1631.c optional ds1631 powermac
dev/iicbus/ds1775.c optional ds1775 powermac
dev/iicbus/max6690.c optional max6690 powermac
-dev/kbd/kbd.c optional sc
+dev/kbd/kbd.c optional sc | vt
dev/nand/nfc_fsl.c optional nand mpc85xx
# ofw can be either aim or fdt: fdt case handled in files. aim only powerpc specific.
dev/ofw/openfirm.c optional aim
@@ -65,6 +65,7 @@ dev/tsec/if_tsec.c optional tsec
dev/tsec/if_tsec_fdt.c optional tsec fdt
dev/uart/uart_cpu_powerpc.c optional uart
dev/usb/controller/ehci_fsl.c optional ehci mpc85xx
+dev/vt/hw/ofwfb/ofwfb.c optional vt aim
kern/kern_clocksource.c standard
kern/subr_dummy_vdso_tc.c standard
kern/syscalls.c optional ktr
@@ -106,15 +107,15 @@ powerpc/booke/pmap.c optional booke
powerpc/booke/trap.c optional booke
powerpc/cpufreq/dfs.c optional cpufreq
powerpc/cpufreq/pcr.c optional cpufreq aim
-powerpc/fpu/fpu_add.c optional fpu_emu powerpc
-powerpc/fpu/fpu_compare.c optional fpu_emu powerpc
-powerpc/fpu/fpu_div.c optional fpu_emu powerpc
-powerpc/fpu/fpu_emu.c optional fpu_emu powerpc
-powerpc/fpu/fpu_explode.c optional fpu_emu powerpc
-powerpc/fpu/fpu_implode.c optional fpu_emu powerpc
-powerpc/fpu/fpu_mul.c optional fpu_emu powerpc
-powerpc/fpu/fpu_sqrt.c optional fpu_emu powerpc
-powerpc/fpu/fpu_subr.c optional fpu_emu powerpc
+powerpc/fpu/fpu_add.c optional fpu_emu
+powerpc/fpu/fpu_compare.c optional fpu_emu
+powerpc/fpu/fpu_div.c optional fpu_emu
+powerpc/fpu/fpu_emu.c optional fpu_emu
+powerpc/fpu/fpu_explode.c optional fpu_emu
+powerpc/fpu/fpu_implode.c optional fpu_emu
+powerpc/fpu/fpu_mul.c optional fpu_emu
+powerpc/fpu/fpu_sqrt.c optional fpu_emu
+powerpc/fpu/fpu_subr.c optional fpu_emu
powerpc/mambo/mambocall.S optional mambo
powerpc/mambo/mambo.c optional mambo
powerpc/mambo/mambo_console.c optional mambo
Modified: projects/uefi/sys/conf/files.sparc64
==============================================================================
--- projects/uefi/sys/conf/files.sparc64 Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/conf/files.sparc64 Thu Dec 5 23:18:54 2013 (r259020)
@@ -39,7 +39,7 @@ dev/fb/fb.c optional sc
dev/fb/gallant12x22.c optional sc
dev/fb/machfb.c optional machfb sc
dev/hwpmc/hwpmc_sparc64.c optional hwpmc
-dev/kbd/kbd.c optional atkbd | sc | ukbd
+dev/kbd/kbd.c optional atkbd | sc | ukbd | vt
dev/le/if_le_lebuffer.c optional le sbus
dev/le/if_le_ledma.c optional le sbus
dev/le/lebuffer_sbus.c optional le sbus
@@ -59,7 +59,8 @@ dev/syscons/scgfbrndr.c optional sc
dev/syscons/scterm-teken.c optional sc
dev/syscons/scvtb.c optional sc
dev/uart/uart_cpu_sparc64.c optional uart
-dev/uart/uart_kbd_sun.c optional uart sc
+dev/uart/uart_kbd_sun.c optional uart sc | vt
+dev/vt/hw/ofwfb/ofwfb.c optional vt
kern/kern_clocksource.c standard
kern/subr_dummy_vdso_tc.c standard
kern/syscalls.c optional ktr
Modified: projects/uefi/sys/conf/kmod.mk
==============================================================================
--- projects/uefi/sys/conf/kmod.mk Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/conf/kmod.mk Thu Dec 5 23:18:54 2013 (r259020)
@@ -340,7 +340,7 @@ CFLAGS+= ${CONF_CFLAGS}
MFILES?= dev/acpica/acpi_if.m dev/acpi_support/acpi_wmi_if.m \
dev/agp/agp_if.m dev/ata/ata_if.m dev/eisa/eisa_if.m \
- dev/gpio/gpio_if.m dev/gpio/gpiobus_if.m \
+ dev/fb/fb_if.m dev/gpio/gpio_if.m dev/gpio/gpiobus_if.m \
dev/iicbus/iicbb_if.m dev/iicbus/iicbus_if.m \
dev/mmc/mmcbr_if.m dev/mmc/mmcbus_if.m \
dev/mii/miibus_if.m dev/mvs/mvs_if.m dev/ofw/ofw_bus_if.m \
Modified: projects/uefi/sys/conf/options
==============================================================================
--- projects/uefi/sys/conf/options Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/conf/options Thu Dec 5 23:18:54 2013 (r259020)
@@ -731,8 +731,10 @@ SAFE_DEBUG opt_safe.h
SAFE_NO_RNG opt_safe.h
SAFE_RNDTEST opt_safe.h
-# syscons options
+# syscons/vt options
MAXCONS opt_syscons.h
+VT_FB_DEFAULT_WIDTH opt_syscons.h
+VT_FB_DEFAULT_HEIGHT opt_syscons.h
SC_ALT_MOUSE_IMAGE opt_syscons.h
SC_CUT_SPACES2TABS opt_syscons.h
SC_CUT_SEPCHARS opt_syscons.h
Modified: projects/uefi/sys/dev/drm2/drm_fb_helper.c
==============================================================================
--- projects/uefi/sys/dev/drm2/drm_fb_helper.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/dev/drm2/drm_fb_helper.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -36,6 +36,41 @@ __FBSDID("$FreeBSD$");
#include <dev/drm2/drm_fb_helper.h>
#include <dev/drm2/drm_crtc_helper.h>
+#if defined(__FreeBSD__)
+struct vt_kms_softc {
+ struct drm_fb_helper *fb_helper;
+ struct task fb_mode_task;
+};
+
+static fb_enter_t vt_kms_postswitch;
+static void vt_restore_fbdev_mode(void *, int);
+
+/* Call restore out of vt(9) locks. */
+static void
+vt_restore_fbdev_mode(void *arg, int pending)
+{
+ struct drm_fb_helper *fb_helper;
+ struct vt_kms_softc *sc;
+
+ sc = (struct vt_kms_softc *)arg;
+ fb_helper = sc->fb_helper;
+ sx_xlock(&fb_helper->dev->mode_config.mutex);
+ drm_fb_helper_restore_fbdev_mode(fb_helper);
+ sx_xunlock(&fb_helper->dev->mode_config.mutex);
+}
+
+static int
+vt_kms_postswitch(void *arg)
+{
+ struct vt_kms_softc *sc;
+
+ sc = (struct vt_kms_softc *)arg;
+ taskqueue_enqueue_fast(taskqueue_thread, &sc->fb_mode_task);
+
+ return (0);
+}
+#endif
+
static DRM_LIST_HEAD(kernel_fb_helper_list);
/* simple single crtc case helper function */
@@ -216,6 +251,10 @@ static int
fb_get_options(const char *connector_name, char **option)
{
+ /*
+ * TODO: store mode options pointer in ${option} for connector with
+ * name ${connector_name}
+ */
return (1);
}
@@ -892,11 +931,13 @@ int drm_fb_helper_single_fb_probe(struct
int new_fb = 0;
int crtc_count = 0;
int i;
-#if 0
struct fb_info *info;
-#endif
struct drm_fb_helper_surface_size sizes;
int gamma_size = 0;
+#if defined(__FreeBSD__)
+ struct vt_kms_softc *sc;
+ device_t kdev;
+#endif
memset(&sizes, 0, sizeof(struct drm_fb_helper_surface_size));
sizes.surface_depth = 24;
@@ -973,8 +1014,21 @@ int drm_fb_helper_single_fb_probe(struct
if (new_fb < 0)
return new_fb;
-#if 0
+#if defined(__FreeBSD__)
+ sc = malloc(sizeof(struct vt_kms_softc), DRM_MEM_KMS,
+ M_WAITOK | M_ZERO);
+ sc->fb_helper = fb_helper;
+ TASK_INIT(&sc->fb_mode_task, 0, vt_restore_fbdev_mode, sc);
+
info = fb_helper->fbdev;
+
+ info->fb_name = device_get_nameunit(fb_helper->dev->device);
+ info->fb_depth = fb_helper->fb->bits_per_pixel;
+ info->fb_height = fb_helper->fb->height;
+ info->fb_width = fb_helper->fb->width;
+ info->fb_stride = fb_helper->fb->pitches[0];
+ info->fb_priv = sc;
+ info->enter = &vt_kms_postswitch;
#endif
/* set the fb pointer */
@@ -982,7 +1036,18 @@ int drm_fb_helper_single_fb_probe(struct
fb_helper->crtc_info[i].mode_set.fb = fb_helper->fb;
}
-#if 0
+#if defined(__FreeBSD__)
+ if (new_fb) {
+ device_t fbd;
+ int ret;
+
+ kdev = fb_helper->dev->device;
+ fbd = device_add_child(kdev, "fbd", device_get_unit(kdev));
+ ret = device_probe_and_attach(fbd);
+ if (ret != 0)
+ DRM_ERROR("Failed to attach fbd device: %d\n", ret);
+ }
+#else
if (new_fb) {
info->var.pixclock = 0;
if (register_framebuffer(info) < 0) {
@@ -1006,7 +1071,6 @@ int drm_fb_helper_single_fb_probe(struct
if (new_fb)
list_add(&fb_helper->kernel_fb_list, &kernel_fb_helper_list);
#endif
-
return 0;
}
Modified: projects/uefi/sys/dev/drm2/drm_os_freebsd.h
==============================================================================
--- projects/uefi/sys/dev/drm2/drm_os_freebsd.h Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/dev/drm2/drm_os_freebsd.h Thu Dec 5 23:18:54 2013 (r259020)
@@ -6,6 +6,8 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include <sys/fbio.h>
+
#if _BYTE_ORDER == _BIG_ENDIAN
#define __BIG_ENDIAN 4321
#else
Modified: projects/uefi/sys/dev/drm2/i915/i915_drv.c
==============================================================================
--- projects/uefi/sys/dev/drm2/i915/i915_drv.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/dev/drm2/i915/i915_drv.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -40,6 +40,8 @@ __FBSDID("$FreeBSD$");
#include <dev/drm2/drm_pciids.h>
#include <dev/drm2/i915/intel_drv.h>
+#include "fb_if.h"
+
/* drv_PCI_IDs comes from drm_pciids.h, generated from drm_pciids.txt. */
static drm_pci_id_list_t i915_pciidlist[] = {
i915_PCI_IDS
@@ -380,6 +382,25 @@ i915_attach(device_t kdev)
return (drm_attach(kdev, i915_pciidlist));
}
+static struct fb_info *
+i915_fb_helper_getinfo(device_t kdev)
+{
+ struct intel_fbdev *ifbdev;
+ drm_i915_private_t *dev_priv;
+ struct drm_device *dev;
+ struct fb_info *info;
+
+ dev = device_get_softc(kdev);
+ dev_priv = dev->dev_private;
+ ifbdev = dev_priv->fbdev;
+ if (ifbdev == NULL)
+ return (NULL);
+
+ info = ifbdev->helper.fbdev;
+
+ return (info);
+}
+
const struct intel_device_info *
i915_get_device_id(int device)
{
@@ -400,6 +421,10 @@ static device_method_t i915_methods[] =
DEVMETHOD(device_suspend, i915_suspend),
DEVMETHOD(device_resume, i915_resume),
DEVMETHOD(device_detach, drm_detach),
+
+ /* Framebuffer service methods */
+ DEVMETHOD(fb_getinfo, i915_fb_helper_getinfo),
+
DEVMETHOD_END
};
Modified: projects/uefi/sys/dev/drm2/i915/intel_fb.c
==============================================================================
--- projects/uefi/sys/dev/drm2/i915/intel_fb.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/dev/drm2/i915/intel_fb.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -41,8 +41,8 @@ static int intelfb_create(struct intel_f
struct drm_device *dev = ifbdev->helper.dev;
#if 0
struct drm_i915_private *dev_priv = dev->dev_private;
- struct fb_info *info;
#endif
+ struct fb_info *info;
struct drm_framebuffer *fb;
struct drm_mode_fb_cmd2 mode_cmd;
struct drm_i915_gem_object *obj;
@@ -86,6 +86,16 @@ static int intelfb_create(struct intel_f
}
info->par = ifbdev;
+#else
+ info = malloc(sizeof(struct fb_info), DRM_MEM_KMS, M_WAITOK | M_ZERO);
+ info->fb_size = size;
+ info->fb_bpp = sizes->surface_bpp;
+ info->fb_width = sizes->fb_width;
+ info->fb_height = sizes->fb_height;
+ info->fb_pbase = dev->agp->base + obj->gtt_offset;
+ info->fb_vbase = (vm_offset_t)pmap_mapdev_attr(info->fb_pbase, size,
+ PAT_WRITE_COMBINING);
+
#endif
ret = intel_framebuffer_init(dev, &ifbdev->ifb, &mode_cmd, obj);
@@ -95,8 +105,8 @@ static int intelfb_create(struct intel_f
fb = &ifbdev->ifb.base;
ifbdev->helper.fb = fb;
-#if 0
ifbdev->helper.fbdev = info;
+#if 0
strcpy(info->fix.id, "inteldrmfb");
@@ -135,9 +145,8 @@ static int intelfb_create(struct intel_f
/* Use default scratch pixmap (info->pixmap.flags = FB_PIXMAP_SYSTEM) */
#endif
-
- DRM_DEBUG_KMS("allocated %dx%d fb: 0x%08x, bo %p\n",
- fb->width, fb->height,
+ DRM_DEBUG_KMS("allocated %dx%d (s %dbits) fb: 0x%08x, bo %p\n",
+ fb->width, fb->height, fb->depth,
obj->gtt_offset, obj);
DRM_UNLOCK(dev);
Modified: projects/uefi/sys/dev/drm2/radeon/radeon.h
==============================================================================
--- projects/uefi/sys/dev/drm2/radeon/radeon.h Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/dev/drm2/radeon/radeon.h Thu Dec 5 23:18:54 2013 (r259020)
@@ -2041,6 +2041,9 @@ void radeon_pm_acpi_event_handler(struct
int radeon_ttm_init(struct radeon_device *rdev);
void radeon_ttm_fini(struct radeon_device *rdev);
+/* radeon_fb.c */
+struct fb_info * radeon_fb_helper_getinfo(device_t kdev);
+
/* r600.c */
int r600_ih_ring_alloc(struct radeon_device *rdev);
void r600_ih_ring_fini(struct radeon_device *rdev);
Modified: projects/uefi/sys/dev/drm2/radeon/radeon_drv.c
==============================================================================
--- projects/uefi/sys/dev/drm2/radeon/radeon_drv.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/dev/drm2/radeon/radeon_drv.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$");
#include <dev/drm2/drm_pciids.h>
+#include "fb_if.h"
/*
* KMS wrapper.
@@ -338,6 +339,12 @@ static const struct file_operations rade
};
#endif /* DUMBBELL_WIP */
+static int radeon_sysctl_init(struct drm_device *dev, struct sysctl_ctx_list *ctx,
+ struct sysctl_oid *top)
+{
+ return drm_add_busid_modesetting(dev, ctx, top);
+}
+
static struct drm_driver_info kms_driver = {
.driver_features =
DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG |
@@ -367,6 +374,7 @@ static struct drm_driver_info kms_driver
.irq_postinstall = radeon_driver_irq_postinstall_kms,
.irq_uninstall = radeon_driver_irq_uninstall_kms,
.irq_handler = radeon_driver_irq_handler_kms,
+ .sysctl_init = radeon_sysctl_init,
.ioctls = radeon_ioctls_kms,
.gem_init_object = radeon_gem_object_init,
.gem_free_object = radeon_gem_object_free,
@@ -488,6 +496,8 @@ radeon_resume(device_t kdev)
return (-ret);
}
+extern struct fb_info * radeon_fb_helper_getinfo(device_t kdev);
+
static device_method_t radeon_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, radeon_probe),
@@ -495,6 +505,10 @@ static device_method_t radeon_methods[]
DEVMETHOD(device_suspend, radeon_suspend),
DEVMETHOD(device_resume, radeon_resume),
DEVMETHOD(device_detach, drm_detach),
+
+ /* Framebuffer service methods */
+ DEVMETHOD(fb_getinfo, radeon_fb_helper_getinfo),
+
DEVMETHOD_END
};
Modified: projects/uefi/sys/dev/drm2/radeon/radeon_fb.c
==============================================================================
--- projects/uefi/sys/dev/drm2/radeon/radeon_fb.c Thu Dec 5 22:58:05 2013 (r259019)
+++ projects/uefi/sys/dev/drm2/radeon/radeon_fb.c Thu Dec 5 23:18:54 2013 (r259020)
@@ -27,6 +27,8 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include <machine/_inttypes.h>
+
#include <dev/drm2/drmP.h>
#include <dev/drm2/drm_crtc.h>
#include <dev/drm2/drm_crtc_helper.h>
@@ -46,7 +48,7 @@ struct radeon_fbdev {
struct radeon_device *rdev;
};
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list