[Mesa-dev] [PATCH 01/26] python: Use the print function
Eric Engestrom
eric.engestrom at intel.com
Thu Jul 5 13:55:05 UTC 2018
On Thursday, 2018-07-05 15:17:32 +0200, Mathieu Bridon wrote:
> In Python 2, `print` was a statement, but it became a function in
> Python 3.
>
> Using print functions everywhere makes the script compatible with Python
> versions >= 2.6, including Python 3.
>
> Signed-off-by: Mathieu Bridon <bochecha at daitauha.fr>
Too big for me to actually read through, but the idea of it is:
Acked-by: Eric Engestrom <eric.engestrom at intel.com>
> ---
> src/amd/common/sid_tables.py | 39 +-
> src/amd/vulkan/vk_format_table.py | 93 ++--
> src/compiler/nir/nir_builder_opcodes_h.py | 3 +-
> src/compiler/nir/nir_constant_expressions.py | 5 +-
> src/compiler/nir/nir_opcodes_c.py | 4 +-
> src/compiler/nir/nir_opcodes_h.py | 3 +-
> src/compiler/nir/nir_opt_algebraic.py | 12 +-
> .../auxiliary/indices/u_indices_gen.py | 296 ++++++-------
> .../auxiliary/indices/u_unfilled_gen.py | 94 ++--
> src/gallium/auxiliary/util/u_format_pack.py | 168 ++++----
> src/gallium/auxiliary/util/u_format_table.py | 181 ++++----
> .../drivers/freedreno/ir3/ir3_nir_trig.py | 8 +-
> src/gallium/drivers/r600/egd_tables.py | 51 +--
> .../compiler/brw_nir_trig_workarounds.py | 8 +-
> src/mapi/glapi/gen/glX_proto_common.py | 8 +-
> src/mapi/glapi/gen/glX_proto_send.py | 408 +++++++++---------
> src/mapi/glapi/gen/glX_proto_size.py | 232 +++++-----
> src/mapi/glapi/gen/gl_SPARC_asm.py | 360 ++++++++--------
> src/mapi/glapi/gen/gl_XML.py | 48 ++-
> src/mapi/glapi/gen/gl_apitemp.py | 96 +++--
> src/mapi/glapi/gen/gl_enums.py | 62 +--
> src/mapi/glapi/gen/gl_genexec.py | 12 +-
> src/mapi/glapi/gen/gl_gentable.py | 14 +-
> src/mapi/glapi/gen/gl_marshal.py | 26 +-
> src/mapi/glapi/gen/gl_marshal_h.py | 16 +-
> src/mapi/glapi/gen/gl_procs.py | 60 +--
> src/mapi/glapi/gen/gl_table.py | 126 +++---
> src/mapi/glapi/gen/gl_x86-64_asm.py | 184 ++++----
> src/mapi/glapi/gen/gl_x86_asm.py | 264 ++++++------
> src/mapi/glapi/gen/remap_helper.py | 46 +-
> src/mapi/glapi/gen/typeexpr.py | 6 +-
> src/mapi/mapi_abi.py | 154 +++----
> src/mesa/main/format_info.py | 40 +-
> src/mesa/main/format_pack.py | 3 +-
> src/mesa/main/format_unpack.py | 3 +-
> src/mesa/main/get_hash_generator.py | 28 +-
> src/util/format_srgb.py | 69 ++-
> src/util/xmlpool/gen_xmlpool.py | 17 +-
> 38 files changed, 1652 insertions(+), 1595 deletions(-)
>
> diff --git a/src/amd/common/sid_tables.py b/src/amd/common/sid_tables.py
> index ca90f82535..421c2a1335 100644
> --- a/src/amd/common/sid_tables.py
> +++ b/src/amd/common/sid_tables.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>
> CopyRight = '''
> /*
> @@ -333,10 +334,10 @@ def write_tables(asics, packets):
> strings_offsets = IntTable("int")
> fields = FieldTable()
>
> - print '/* This file is autogenerated by sid_tables.py from sid.h. Do not edit directly. */'
> - print
> - print CopyRight.strip()
> - print '''
> + print('/* This file is autogenerated by sid_tables.py from sid.h. Do not edit directly. */')
> + print()
> + print(CopyRight.strip())
> + print('''
> #ifndef SID_TABLES_H
> #define SID_TABLES_H
>
> @@ -358,17 +359,17 @@ struct si_packet3 {
> unsigned name_offset;
> unsigned op;
> };
> -'''
> +''')
>
> - print 'static const struct si_packet3 packet3_table[] = {'
> + print('static const struct si_packet3 packet3_table[] = {')
> for pkt in packets:
> - print '\t{%s, %s},' % (strings.add(pkt[5:]), pkt)
> - print '};'
> - print
> + print('\t{%s, %s},' % (strings.add(pkt[5:]), pkt))
> + print('};')
> + print()
>
> regs = {}
> for asic in asics:
> - print 'static const struct si_reg %s_reg_table[] = {' % (asic.name)
> + print('static const struct si_reg %s_reg_table[] = {' % (asic.name))
> for reg in asic.registers:
> # Only output a register that was changed or added relative to
> # the previous generation
> @@ -377,27 +378,27 @@ struct si_packet3 {
> continue
>
> if len(reg.fields):
> - print '\t{%s, %s, %s, %s},' % (strings.add(reg.name), reg.r_name,
> - len(reg.fields), fields.add(reg.fields))
> + print('\t{%s, %s, %s, %s},' % (strings.add(reg.name), reg.r_name,
> + len(reg.fields), fields.add(reg.fields)))
> else:
> - print '\t{%s, %s},' % (strings.add(reg.name), reg.r_name)
> + print('\t{%s, %s},' % (strings.add(reg.name), reg.r_name))
>
> regs[reg.r_name] = reg
> - print '};'
> - print
> + print('};')
> + print()
>
> fields.emit(sys.stdout, strings, strings_offsets)
>
> - print
> + print()
>
> strings.emit(sys.stdout, "sid_strings")
>
> - print
> + print()
>
> strings_offsets.emit(sys.stdout, "sid_strings_offsets")
>
> - print
> - print '#endif'
> + print()
> + print('#endif')
>
>
> def main():
> diff --git a/src/amd/vulkan/vk_format_table.py b/src/amd/vulkan/vk_format_table.py
> index cd1af6226a..604aac8fa7 100644
> --- a/src/amd/vulkan/vk_format_table.py
> +++ b/src/amd/vulkan/vk_format_table.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>
> CopyRight = '''
> /**************************************************************************
> @@ -79,24 +80,24 @@ def print_channels(format, func):
> if format.nr_channels() <= 1:
> func(format.le_channels, format.le_swizzles)
> else:
> - print '#ifdef PIPE_ARCH_BIG_ENDIAN'
> + print('#ifdef PIPE_ARCH_BIG_ENDIAN')
> func(format.be_channels, format.be_swizzles)
> - print '#else'
> + print('#else')
> func(format.le_channels, format.le_swizzles)
> - print '#endif'
> + print('#endif')
>
> def write_format_table(formats):
> - print '/* This file is autogenerated by vk_format_table.py from vk_format_layout.csv. Do not edit directly. */'
> - print
> + print('/* This file is autogenerated by vk_format_table.py from vk_format_layout.csv. Do not edit directly. */')
> + print()
> # This will print the copyright message on the top of this file
> - print CopyRight.strip()
> - print
> - print '#include "stdbool.h"'
> - print '#include "vk_format.h"'
> - print
> + print(CopyRight.strip())
> + print()
> + print('#include "stdbool.h"')
> + print('#include "vk_format.h"')
> + print()
>
> def do_channel_array(channels, swizzles):
> - print " {"
> + print(" {")
> for i in range(4):
> channel = channels[i]
> if i < 3:
> @@ -104,13 +105,13 @@ def write_format_table(formats):
> else:
> sep = ""
> if channel.size:
> - print " {%s, %s, %s, %s, %u, %u}%s\t/* %s = %s */" % (type_map[channel.type], bool_map(channel.norm), bool_map(channel.pure), bool_map(channel.scaled), channel.size, channel.shift, sep, "xyzw"[i], channel.name)
> + print(" {%s, %s, %s, %s, %u, %u}%s\t/* %s = %s */" % (type_map[channel.type], bool_map(channel.norm), bool_map(channel.pure), bool_map(channel.scaled), channel.size, channel.shift, sep, "xyzw"[i], channel.name))
> else:
> - print " {0, 0, 0, 0, 0}%s" % (sep,)
> - print " },"
> + print(" {0, 0, 0, 0, 0}%s" % (sep,))
> + print(" },")
>
> def do_swizzle_array(channels, swizzles):
> - print " {"
> + print(" {")
> for i in range(4):
> swizzle = swizzles[i]
> if i < 3:
> @@ -121,43 +122,43 @@ def write_format_table(formats):
> comment = colorspace_channels_map[format.colorspace][i]
> except (KeyError, IndexError):
> comment = 'ignored'
> - print " %s%s\t/* %s */" % (swizzle_map[swizzle], sep, comment)
> - print " },"
> + print(" %s%s\t/* %s */" % (swizzle_map[swizzle], sep, comment))
> + print(" },")
>
> for format in formats:
> - print 'static const struct vk_format_description'
> - print 'vk_format_%s_description = {' % (format.short_name(),)
> - print " %s," % (format.name,)
> - print " \"%s\"," % (format.name,)
> - print " \"%s\"," % (format.short_name(),)
> - print " {%u, %u, %u},\t/* block */" % (format.block_width, format.block_height, format.block_size())
> - print " %s," % (layout_map(format.layout),)
> - print " %u,\t/* nr_channels */" % (format.nr_channels(),)
> - print " %s,\t/* is_array */" % (bool_map(format.is_array()),)
> - print " %s,\t/* is_bitmask */" % (bool_map(format.is_bitmask()),)
> - print " %s,\t/* is_mixed */" % (bool_map(format.is_mixed()),)
> + print('static const struct vk_format_description')
> + print('vk_format_%s_description = {' % (format.short_name(),))
> + print(" %s," % (format.name,))
> + print(" \"%s\"," % (format.name,))
> + print(" \"%s\"," % (format.short_name(),))
> + print(" {%u, %u, %u},\t/* block */" % (format.block_width, format.block_height, format.block_size()))
> + print(" %s," % (layout_map(format.layout),))
> + print(" %u,\t/* nr_channels */" % (format.nr_channels(),))
> + print(" %s,\t/* is_array */" % (bool_map(format.is_array()),))
> + print(" %s,\t/* is_bitmask */" % (bool_map(format.is_bitmask()),))
> + print(" %s,\t/* is_mixed */" % (bool_map(format.is_mixed()),))
> print_channels(format, do_channel_array)
> print_channels(format, do_swizzle_array)
> - print " %s," % (colorspace_map(format.colorspace),)
> - print "};"
> - print
> + print(" %s," % (colorspace_map(format.colorspace),))
> + print("};")
> + print()
>
> - print "const struct vk_format_description *"
> - print "vk_format_description(VkFormat format)"
> - print "{"
> - print " if (format > VK_FORMAT_END_RANGE) {"
> - print " return NULL;"
> - print " }"
> - print
> - print " switch (format) {"
> + print("const struct vk_format_description *")
> + print("vk_format_description(VkFormat format)")
> + print("{")
> + print(" if (format > VK_FORMAT_END_RANGE) {")
> + print(" return NULL;")
> + print(" }")
> + print()
> + print(" switch (format) {")
> for format in formats:
> - print " case %s:" % format.name
> - print " return &vk_format_%s_description;" % (format.short_name(),)
> - print " default:"
> - print " return NULL;"
> - print " }"
> - print "}"
> - print
> + print(" case %s:" % format.name)
> + print(" return &vk_format_%s_description;" % (format.short_name(),))
> + print(" default:")
> + print(" return NULL;")
> + print(" }")
> + print("}")
> + print()
>
>
> def main():
> diff --git a/src/compiler/nir/nir_builder_opcodes_h.py b/src/compiler/nir/nir_builder_opcodes_h.py
> index 4a41e6079e..72cf5b4549 100644
> --- a/src/compiler/nir/nir_builder_opcodes_h.py
> +++ b/src/compiler/nir/nir_builder_opcodes_h.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>
> template = """\
> /* Copyright (C) 2015 Broadcom
> @@ -68,4 +69,4 @@ from nir_opcodes import opcodes
> from nir_intrinsics import INTR_OPCODES
> from mako.template import Template
>
> -print Template(template).render(opcodes=opcodes, INTR_OPCODES=INTR_OPCODES)
> +print(Template(template).render(opcodes=opcodes, INTR_OPCODES=INTR_OPCODES))
> diff --git a/src/compiler/nir/nir_constant_expressions.py b/src/compiler/nir/nir_constant_expressions.py
> index db5bde2b82..35dffe70ce 100644
> --- a/src/compiler/nir/nir_constant_expressions.py
> +++ b/src/compiler/nir/nir_constant_expressions.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>
> import re
>
> @@ -431,8 +432,8 @@ nir_eval_const_opcode(nir_op op, unsigned num_components,
> from nir_opcodes import opcodes
> from mako.template import Template
>
> -print Template(template).render(opcodes=opcodes, type_sizes=type_sizes,
> +print(Template(template).render(opcodes=opcodes, type_sizes=type_sizes,
> type_has_size=type_has_size,
> type_add_size=type_add_size,
> op_bit_sizes=op_bit_sizes,
> - get_const_field=get_const_field)
> + get_const_field=get_const_field))
> diff --git a/src/compiler/nir/nir_opcodes_c.py b/src/compiler/nir/nir_opcodes_c.py
> index 8afccca950..108e144b5f 100644
> --- a/src/compiler/nir/nir_opcodes_c.py
> +++ b/src/compiler/nir/nir_opcodes_c.py
> @@ -23,6 +23,8 @@
> # Authors:
> # Connor Abbott (cwabbott0 at gmail.com)
>
> +from __future__ import print_function
> +
> from nir_opcodes import opcodes
> from mako.template import Template
>
> @@ -135,4 +137,4 @@ const nir_op_info nir_op_infos[nir_num_opcodes] = {
> };
> """)
>
> -print template.render(opcodes=opcodes)
> +print(template.render(opcodes=opcodes))
> diff --git a/src/compiler/nir/nir_opcodes_h.py b/src/compiler/nir/nir_opcodes_h.py
> index c9538e4e95..8ad17c84d4 100644
> --- a/src/compiler/nir/nir_opcodes_h.py
> +++ b/src/compiler/nir/nir_opcodes_h.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>
> template = """\
> /* Copyright (C) 2014 Connor Abbott
> @@ -43,4 +44,4 @@ typedef enum {
> from nir_opcodes import opcodes
> from mako.template import Template
>
> -print Template(template).render(opcodes=opcodes)
> +print(Template(template).render(opcodes=opcodes))
> diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py
> index 2f1cba398f..5e07d662b0 100644
> --- a/src/compiler/nir/nir_opt_algebraic.py
> +++ b/src/compiler/nir/nir_opt_algebraic.py
> @@ -23,6 +23,8 @@
> # Authors:
> # Jason Ekstrand (jason at jlekstrand.net)
>
> +from __future__ import print_function
> +
> from collections import OrderedDict
> import nir_algebraic
> import itertools
> @@ -791,8 +793,8 @@ late_optimizations = [
> (('b2f at 32', a), ('iand', a, 1.0), 'options->lower_b2f'),
> ]
>
> -print nir_algebraic.AlgebraicPass("nir_opt_algebraic", optimizations).render()
> -print nir_algebraic.AlgebraicPass("nir_opt_algebraic_before_ffma",
> - before_ffma_optimizations).render()
> -print nir_algebraic.AlgebraicPass("nir_opt_algebraic_late",
> - late_optimizations).render()
> +print(nir_algebraic.AlgebraicPass("nir_opt_algebraic", optimizations).render())
> +print(nir_algebraic.AlgebraicPass("nir_opt_algebraic_before_ffma",
> + before_ffma_optimizations).render())
> +print(nir_algebraic.AlgebraicPass("nir_opt_algebraic_late",
> + late_optimizations).render())
> diff --git a/src/gallium/auxiliary/indices/u_indices_gen.py b/src/gallium/auxiliary/indices/u_indices_gen.py
> index 376348d5f8..2d9297854c 100644
> --- a/src/gallium/auxiliary/indices/u_indices_gen.py
> +++ b/src/gallium/auxiliary/indices/u_indices_gen.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
> copyright = '''
> /*
> * Copyright 2009 VMware, Inc.
> @@ -69,9 +71,9 @@ pv_idx = dict(first='PV_FIRST', last='PV_LAST')
> pr_idx = dict(prdisable='PR_DISABLE', prenable='PR_ENABLE')
>
> def prolog():
> - print '''/* File automatically generated by u_indices_gen.py */'''
> - print copyright
> - print r'''
> + print('''/* File automatically generated by u_indices_gen.py */''')
> + print(copyright)
> + print(r'''
>
> /**
> * @file
> @@ -107,7 +109,7 @@ static u_translate_func translate[IN_COUNT][OUT_COUNT][PV_COUNT][PV_COUNT][PR_CO
> static u_generate_func generate[OUT_COUNT][PV_COUNT][PV_COUNT][PRIM_COUNT];
>
>
> -'''
> +''')
>
> def vert( intype, outtype, v0 ):
> if intype == GENERATE:
> @@ -116,30 +118,30 @@ def vert( intype, outtype, v0 ):
> return '(' + outtype + ')in[' + v0 + ']'
>
> def point( intype, outtype, ptr, v0 ):
> - print ' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';'
> + print(' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';')
>
> def line( intype, outtype, ptr, v0, v1 ):
> - print ' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';'
> - print ' (' + ptr + ')[1] = ' + vert( intype, outtype, v1 ) + ';'
> + print(' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';')
> + print(' (' + ptr + ')[1] = ' + vert( intype, outtype, v1 ) + ';')
>
> def tri( intype, outtype, ptr, v0, v1, v2 ):
> - print ' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';'
> - print ' (' + ptr + ')[1] = ' + vert( intype, outtype, v1 ) + ';'
> - print ' (' + ptr + ')[2] = ' + vert( intype, outtype, v2 ) + ';'
> + print(' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';')
> + print(' (' + ptr + ')[1] = ' + vert( intype, outtype, v1 ) + ';')
> + print(' (' + ptr + ')[2] = ' + vert( intype, outtype, v2 ) + ';')
>
> def lineadj( intype, outtype, ptr, v0, v1, v2, v3 ):
> - print ' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';'
> - print ' (' + ptr + ')[1] = ' + vert( intype, outtype, v1 ) + ';'
> - print ' (' + ptr + ')[2] = ' + vert( intype, outtype, v2 ) + ';'
> - print ' (' + ptr + ')[3] = ' + vert( intype, outtype, v3 ) + ';'
> + print(' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';')
> + print(' (' + ptr + ')[1] = ' + vert( intype, outtype, v1 ) + ';')
> + print(' (' + ptr + ')[2] = ' + vert( intype, outtype, v2 ) + ';')
> + print(' (' + ptr + ')[3] = ' + vert( intype, outtype, v3 ) + ';')
>
> def triadj( intype, outtype, ptr, v0, v1, v2, v3, v4, v5 ):
> - print ' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';'
> - print ' (' + ptr + ')[1] = ' + vert( intype, outtype, v1 ) + ';'
> - print ' (' + ptr + ')[2] = ' + vert( intype, outtype, v2 ) + ';'
> - print ' (' + ptr + ')[3] = ' + vert( intype, outtype, v3 ) + ';'
> - print ' (' + ptr + ')[4] = ' + vert( intype, outtype, v4 ) + ';'
> - print ' (' + ptr + ')[5] = ' + vert( intype, outtype, v5 ) + ';'
> + print(' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';')
> + print(' (' + ptr + ')[1] = ' + vert( intype, outtype, v1 ) + ';')
> + print(' (' + ptr + ')[2] = ' + vert( intype, outtype, v2 ) + ';')
> + print(' (' + ptr + ')[3] = ' + vert( intype, outtype, v3 ) + ';')
> + print(' (' + ptr + ')[4] = ' + vert( intype, outtype, v4 ) + ';')
> + print(' (' + ptr + ')[5] = ' + vert( intype, outtype, v5 ) + ';')
>
> def do_point( intype, outtype, ptr, v0 ):
> point( intype, outtype, ptr, v0 )
> @@ -186,231 +188,231 @@ def name(intype, outtype, inpv, outpv, pr, prim):
> return 'translate_' + prim + '_' + intype + '2' + outtype + '_' + inpv + '2' + outpv + '_' + pr
>
> def preamble(intype, outtype, inpv, outpv, pr, prim):
> - print 'static void ' + name( intype, outtype, inpv, outpv, pr, prim ) + '('
> + print('static void ' + name( intype, outtype, inpv, outpv, pr, prim ) + '(')
> if intype != GENERATE:
> - print ' const void * _in,'
> - print ' unsigned start,'
> + print(' const void * _in,')
> + print(' unsigned start,')
> if intype != GENERATE:
> - print ' unsigned in_nr,'
> - print ' unsigned out_nr,'
> + print(' unsigned in_nr,')
> + print(' unsigned out_nr,')
> if intype != GENERATE:
> - print ' unsigned restart_index,'
> - print ' void *_out )'
> - print '{'
> + print(' unsigned restart_index,')
> + print(' void *_out )')
> + print('{')
> if intype != GENERATE:
> - print ' const ' + intype + '*in = (const ' + intype + '*)_in;'
> - print ' ' + outtype + ' *out = (' + outtype + '*)_out;'
> - print ' unsigned i, j;'
> - print ' (void)j;'
> + print(' const ' + intype + '*in = (const ' + intype + '*)_in;')
> + print(' ' + outtype + ' *out = (' + outtype + '*)_out;')
> + print(' unsigned i, j;')
> + print(' (void)j;')
>
> def postamble():
> - print '}'
> + print('}')
>
>
> def points(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='points')
> - print ' for (i = start; i < (out_nr+start); i++) { '
> + print(' for (i = start; i < (out_nr+start); i++) { ')
> do_point( intype, outtype, 'out+i', 'i' );
> - print ' }'
> + print(' }')
> postamble()
>
> def lines(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='lines')
> - print ' for (i = start; i < (out_nr+start); i+=2) { '
> + print(' for (i = start; i < (out_nr+start); i+=2) { ')
> do_line( intype, outtype, 'out+i', 'i', 'i+1', inpv, outpv );
> - print ' }'
> + print(' }')
> postamble()
>
> def linestrip(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='linestrip')
> - print ' for (i = start, j = 0; j < out_nr; j+=2, i++) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=2, i++) { ')
> do_line( intype, outtype, 'out+j', 'i', 'i+1', inpv, outpv );
> - print ' }'
> + print(' }')
> postamble()
>
> def lineloop(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='lineloop')
> - print ' for (i = start, j = 0; j < out_nr - 2; j+=2, i++) { '
> + print(' for (i = start, j = 0; j < out_nr - 2; j+=2, i++) { ')
> do_line( intype, outtype, 'out+j', 'i', 'i+1', inpv, outpv );
> - print ' }'
> + print(' }')
> do_line( intype, outtype, 'out+j', 'i', 'start', inpv, outpv );
> postamble()
>
> def tris(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='tris')
> - print ' for (i = start; i < (out_nr+start); i+=3) { '
> + print(' for (i = start; i < (out_nr+start); i+=3) { ')
> do_tri( intype, outtype, 'out+i', 'i', 'i+1', 'i+2', inpv, outpv );
> - print ' }'
> + print(' }')
> postamble()
>
>
> def tristrip(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='tristrip')
> - print ' for (i = start, j = 0; j < out_nr; j+=3, i++) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=3, i++) { ')
> if inpv == FIRST:
> do_tri( intype, outtype, 'out+j', 'i', 'i+1+(i&1)', 'i+2-(i&1)', inpv, outpv );
> else:
> do_tri( intype, outtype, 'out+j', 'i+(i&1)', 'i+1-(i&1)', 'i+2', inpv, outpv );
> - print ' }'
> + print(' }')
> postamble()
>
>
> def trifan(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='trifan')
> - print ' for (i = start, j = 0; j < out_nr; j+=3, i++) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=3, i++) { ')
> do_tri( intype, outtype, 'out+j', 'start', 'i+1', 'i+2', inpv, outpv );
> - print ' }'
> + print(' }')
> postamble()
>
>
>
> def polygon(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='polygon')
> - print ' for (i = start, j = 0; j < out_nr; j+=3, i++) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=3, i++) { ')
> if pr == PRENABLE:
> - print 'restart:'
> - print ' if (i + 3 > in_nr) {'
> - print ' (out+j+0)[0] = restart_index;'
> - print ' (out+j+0)[1] = restart_index;'
> - print ' (out+j+0)[2] = restart_index;'
> - print ' continue;'
> - print ' }'
> - print ' if (in[i + 0] == restart_index) {'
> - print ' i += 1;'
> - print ' start = i;'
> - print ' goto restart;'
> - print ' }'
> - print ' if (in[i + 1] == restart_index) {'
> - print ' i += 2;'
> - print ' start = i;'
> - print ' goto restart;'
> - print ' }'
> - print ' if (in[i + 2] == restart_index) {'
> - print ' i += 3;'
> - print ' start = i;'
> - print ' goto restart;'
> - print ' }'
> + print('restart:')
> + print(' if (i + 3 > in_nr) {')
> + print(' (out+j+0)[0] = restart_index;')
> + print(' (out+j+0)[1] = restart_index;')
> + print(' (out+j+0)[2] = restart_index;')
> + print(' continue;')
> + print(' }')
> + print(' if (in[i + 0] == restart_index) {')
> + print(' i += 1;')
> + print(' start = i;')
> + print(' goto restart;')
> + print(' }')
> + print(' if (in[i + 1] == restart_index) {')
> + print(' i += 2;')
> + print(' start = i;')
> + print(' goto restart;')
> + print(' }')
> + print(' if (in[i + 2] == restart_index) {')
> + print(' i += 3;')
> + print(' start = i;')
> + print(' goto restart;')
> + print(' }')
>
> if inpv == FIRST:
> do_tri( intype, outtype, 'out+j', 'start', 'i+1', 'i+2', inpv, outpv );
> else:
> do_tri( intype, outtype, 'out+j', 'i+1', 'i+2', 'start', inpv, outpv );
> - print ' }'
> + print(' }')
> postamble()
>
>
> def quads(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='quads')
> - print ' for (i = start, j = 0; j < out_nr; j+=6, i+=4) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=6, i+=4) { ')
> if pr == PRENABLE:
> - print 'restart:'
> - print ' if (i + 4 > in_nr) {'
> - print ' (out+j+0)[0] = restart_index;'
> - print ' (out+j+0)[1] = restart_index;'
> - print ' (out+j+0)[2] = restart_index;'
> - print ' (out+j+3)[0] = restart_index;'
> - print ' (out+j+3)[1] = restart_index;'
> - print ' (out+j+3)[2] = restart_index;'
> - print ' continue;'
> - print ' }'
> - print ' if (in[i + 0] == restart_index) {'
> - print ' i += 1;'
> - print ' goto restart;'
> - print ' }'
> - print ' if (in[i + 1] == restart_index) {'
> - print ' i += 2;'
> - print ' goto restart;'
> - print ' }'
> - print ' if (in[i + 2] == restart_index) {'
> - print ' i += 3;'
> - print ' goto restart;'
> - print ' }'
> - print ' if (in[i + 3] == restart_index) {'
> - print ' i += 4;'
> - print ' goto restart;'
> - print ' }'
> + print('restart:')
> + print(' if (i + 4 > in_nr) {')
> + print(' (out+j+0)[0] = restart_index;')
> + print(' (out+j+0)[1] = restart_index;')
> + print(' (out+j+0)[2] = restart_index;')
> + print(' (out+j+3)[0] = restart_index;')
> + print(' (out+j+3)[1] = restart_index;')
> + print(' (out+j+3)[2] = restart_index;')
> + print(' continue;')
> + print(' }')
> + print(' if (in[i + 0] == restart_index) {')
> + print(' i += 1;')
> + print(' goto restart;')
> + print(' }')
> + print(' if (in[i + 1] == restart_index) {')
> + print(' i += 2;')
> + print(' goto restart;')
> + print(' }')
> + print(' if (in[i + 2] == restart_index) {')
> + print(' i += 3;')
> + print(' goto restart;')
> + print(' }')
> + print(' if (in[i + 3] == restart_index) {')
> + print(' i += 4;')
> + print(' goto restart;')
> + print(' }')
>
> do_quad( intype, outtype, 'out+j', 'i+0', 'i+1', 'i+2', 'i+3', inpv, outpv );
> - print ' }'
> + print(' }')
> postamble()
>
>
> def quadstrip(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='quadstrip')
> - print ' for (i = start, j = 0; j < out_nr; j+=6, i+=2) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=6, i+=2) { ')
> if pr == PRENABLE:
> - print 'restart:'
> - print ' if (i + 4 > in_nr) {'
> - print ' (out+j+0)[0] = restart_index;'
> - print ' (out+j+0)[1] = restart_index;'
> - print ' (out+j+0)[2] = restart_index;'
> - print ' (out+j+3)[0] = restart_index;'
> - print ' (out+j+3)[1] = restart_index;'
> - print ' (out+j+3)[2] = restart_index;'
> - print ' continue;'
> - print ' }'
> - print ' if (in[i + 0] == restart_index) {'
> - print ' i += 1;'
> - print ' goto restart;'
> - print ' }'
> - print ' if (in[i + 1] == restart_index) {'
> - print ' i += 2;'
> - print ' goto restart;'
> - print ' }'
> - print ' if (in[i + 2] == restart_index) {'
> - print ' i += 3;'
> - print ' goto restart;'
> - print ' }'
> - print ' if (in[i + 3] == restart_index) {'
> - print ' i += 4;'
> - print ' goto restart;'
> - print ' }'
> + print('restart:')
> + print(' if (i + 4 > in_nr) {')
> + print(' (out+j+0)[0] = restart_index;')
> + print(' (out+j+0)[1] = restart_index;')
> + print(' (out+j+0)[2] = restart_index;')
> + print(' (out+j+3)[0] = restart_index;')
> + print(' (out+j+3)[1] = restart_index;')
> + print(' (out+j+3)[2] = restart_index;')
> + print(' continue;')
> + print(' }')
> + print(' if (in[i + 0] == restart_index) {')
> + print(' i += 1;')
> + print(' goto restart;')
> + print(' }')
> + print(' if (in[i + 1] == restart_index) {')
> + print(' i += 2;')
> + print(' goto restart;')
> + print(' }')
> + print(' if (in[i + 2] == restart_index) {')
> + print(' i += 3;')
> + print(' goto restart;')
> + print(' }')
> + print(' if (in[i + 3] == restart_index) {')
> + print(' i += 4;')
> + print(' goto restart;')
> + print(' }')
> if inpv == LAST:
> do_quad( intype, outtype, 'out+j', 'i+2', 'i+0', 'i+1', 'i+3', inpv, outpv );
> else:
> do_quad( intype, outtype, 'out+j', 'i+0', 'i+1', 'i+3', 'i+2', inpv, outpv );
> - print ' }'
> + print(' }')
> postamble()
>
>
> def linesadj(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='linesadj')
> - print ' for (i = start; i < (out_nr+start); i+=4) { '
> + print(' for (i = start; i < (out_nr+start); i+=4) { ')
> do_lineadj( intype, outtype, 'out+i', 'i+0', 'i+1', 'i+2', 'i+3', inpv, outpv )
> - print ' }'
> + print(' }')
> postamble()
>
>
> def linestripadj(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='linestripadj')
> - print ' for (i = start, j = 0; j < out_nr; j+=4, i++) {'
> + print(' for (i = start, j = 0; j < out_nr; j+=4, i++) {')
> do_lineadj( intype, outtype, 'out+j', 'i+0', 'i+1', 'i+2', 'i+3', inpv, outpv )
> - print ' }'
> + print(' }')
> postamble()
>
>
> def trisadj(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='trisadj')
> - print ' for (i = start; i < (out_nr+start); i+=6) { '
> + print(' for (i = start; i < (out_nr+start); i+=6) { ')
> do_triadj( intype, outtype, 'out+i', 'i+0', 'i+1', 'i+2', 'i+3',
> 'i+4', 'i+5', inpv, outpv )
> - print ' }'
> + print(' }')
> postamble()
>
>
> def tristripadj(intype, outtype, inpv, outpv, pr):
> preamble(intype, outtype, inpv, outpv, pr, prim='tristripadj')
> - print ' for (i = start, j = 0; j < out_nr; i+=2, j+=6) { '
> - print ' if (i % 4 == 0) {'
> - print ' /* even triangle */'
> + print(' for (i = start, j = 0; j < out_nr; i+=2, j+=6) { ')
> + print(' if (i % 4 == 0) {')
> + print(' /* even triangle */')
> do_triadj( intype, outtype, 'out+j',
> 'i+0', 'i+1', 'i+2', 'i+3', 'i+4', 'i+5', inpv, outpv )
> - print ' } else {'
> - print ' /* odd triangle */'
> + print(' } else {')
> + print(' /* odd triangle */')
> do_triadj( intype, outtype, 'out+j',
> 'i+2', 'i-2', 'i+0', 'i+3', 'i+4', 'i+6', inpv, outpv )
> - print ' }'
> - print ' }'
> + print(' }')
> + print(' }')
> postamble()
>
>
> @@ -466,19 +468,19 @@ def emit_all_inits():
> init(intype, outtype, inpv, outpv, pr, prim)
>
> def emit_init():
> - print 'void u_index_init( void )'
> - print '{'
> - print ' static int firsttime = 1;'
> - print ' if (!firsttime) return;'
> - print ' firsttime = 0;'
> + print('void u_index_init( void )')
> + print('{')
> + print(' static int firsttime = 1;')
> + print(' if (!firsttime) return;')
> + print(' firsttime = 0;')
> emit_all_inits()
> - print '}'
> + print('}')
>
>
>
>
> def epilog():
> - print '#include "indices/u_indices.c"'
> + print('#include "indices/u_indices.c"')
>
>
> def main():
> diff --git a/src/gallium/auxiliary/indices/u_unfilled_gen.py b/src/gallium/auxiliary/indices/u_unfilled_gen.py
> index 4780d98383..4c7d7c61e9 100644
> --- a/src/gallium/auxiliary/indices/u_unfilled_gen.py
> +++ b/src/gallium/auxiliary/indices/u_unfilled_gen.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
> copyright = '''
> /*
> * Copyright 2009 VMware, Inc.
> @@ -53,9 +55,9 @@ outtype_idx = dict(ushort='OUT_USHORT', uint='OUT_UINT')
>
>
> def prolog():
> - print '''/* File automatically generated by u_unfilled_gen.py */'''
> - print copyright
> - print r'''
> + print('''/* File automatically generated by u_unfilled_gen.py */''')
> + print(copyright)
> + print(r'''
>
> /**
> * @file
> @@ -93,7 +95,7 @@ static unsigned in_size_idx( unsigned index_size )
> static u_generate_func generate_line[OUT_COUNT][PRIM_COUNT];
> static u_translate_func translate_line[IN_COUNT][OUT_COUNT][PRIM_COUNT];
>
> -'''
> +''')
>
> def vert( intype, outtype, v0 ):
> if intype == GENERATE:
> @@ -102,8 +104,8 @@ def vert( intype, outtype, v0 ):
> return '(' + outtype + ')in[' + v0 + ']'
>
> def line( intype, outtype, ptr, v0, v1 ):
> - print ' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';'
> - print ' (' + ptr + ')[1] = ' + vert( intype, outtype, v1 ) + ';'
> + print(' (' + ptr + ')[0] = ' + vert( intype, outtype, v0 ) + ';')
> + print(' (' + ptr + ')[1] = ' + vert( intype, outtype, v1 ) + ';')
>
> # XXX: have the opportunity here to avoid over-drawing shared lines in
> # tristrips, fans, etc, by integrating this into the calling functions
> @@ -127,89 +129,89 @@ def name(intype, outtype, prim):
> return 'translate_' + prim + '_' + intype + '2' + outtype
>
> def preamble(intype, outtype, prim):
> - print 'static void ' + name( intype, outtype, prim ) + '('
> + print('static void ' + name( intype, outtype, prim ) + '(')
> if intype != GENERATE:
> - print ' const void * _in,'
> - print ' unsigned start,'
> + print(' const void * _in,')
> + print(' unsigned start,')
> if intype != GENERATE:
> - print ' unsigned in_nr,'
> - print ' unsigned out_nr,'
> + print(' unsigned in_nr,')
> + print(' unsigned out_nr,')
> if intype != GENERATE:
> - print ' unsigned restart_index,'
> - print ' void *_out )'
> - print '{'
> + print(' unsigned restart_index,')
> + print(' void *_out )')
> + print('{')
> if intype != GENERATE:
> - print ' const ' + intype + '*in = (const ' + intype + '*)_in;'
> - print ' ' + outtype + ' *out = (' + outtype + '*)_out;'
> - print ' unsigned i, j;'
> - print ' (void)j;'
> + print(' const ' + intype + '*in = (const ' + intype + '*)_in;')
> + print(' ' + outtype + ' *out = (' + outtype + '*)_out;')
> + print(' unsigned i, j;')
> + print(' (void)j;')
>
> def postamble():
> - print '}'
> + print('}')
>
>
> def tris(intype, outtype):
> preamble(intype, outtype, prim='tris')
> - print ' for (i = start, j = 0; j < out_nr; j+=6, i+=3) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=6, i+=3) { ')
> do_tri( intype, outtype, 'out+j', 'i', 'i+1', 'i+2' );
> - print ' }'
> + print(' }')
> postamble()
>
>
> def tristrip(intype, outtype):
> preamble(intype, outtype, prim='tristrip')
> - print ' for (i = start, j = 0; j < out_nr; j+=6, i++) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=6, i++) { ')
> do_tri( intype, outtype, 'out+j', 'i', 'i+1/*+(i&1)*/', 'i+2/*-(i&1)*/' );
> - print ' }'
> + print(' }')
> postamble()
>
>
> def trifan(intype, outtype):
> preamble(intype, outtype, prim='trifan')
> - print ' for (i = start, j = 0; j < out_nr; j+=6, i++) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=6, i++) { ')
> do_tri( intype, outtype, 'out+j', '0', 'i+1', 'i+2' );
> - print ' }'
> + print(' }')
> postamble()
>
>
>
> def polygon(intype, outtype):
> preamble(intype, outtype, prim='polygon')
> - print ' for (i = start, j = 0; j < out_nr; j+=2, i++) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=2, i++) { ')
> line( intype, outtype, 'out+j', 'i', '(i+1)%(out_nr/2)' )
> - print ' }'
> + print(' }')
> postamble()
>
>
> def quads(intype, outtype):
> preamble(intype, outtype, prim='quads')
> - print ' for (i = start, j = 0; j < out_nr; j+=8, i+=4) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=8, i+=4) { ')
> do_quad( intype, outtype, 'out+j', 'i+0', 'i+1', 'i+2', 'i+3' );
> - print ' }'
> + print(' }')
> postamble()
>
>
> def quadstrip(intype, outtype):
> preamble(intype, outtype, prim='quadstrip')
> - print ' for (i = start, j = 0; j < out_nr; j+=8, i+=2) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=8, i+=2) { ')
> do_quad( intype, outtype, 'out+j', 'i+2', 'i+0', 'i+1', 'i+3' );
> - print ' }'
> + print(' }')
> postamble()
>
>
> def trisadj(intype, outtype):
> preamble(intype, outtype, prim='trisadj')
> - print ' for (i = start, j = 0; j < out_nr; j+=6, i+=6) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=6, i+=6) { ')
> do_tri( intype, outtype, 'out+j', 'i', 'i+2', 'i+4' );
> - print ' }'
> + print(' }')
> postamble()
>
>
> def tristripadj(intype, outtype):
> preamble(intype, outtype, prim='tristripadj')
> - print ' for (i = start, j = 0; j < out_nr; j+=6, i+=2) { '
> + print(' for (i = start, j = 0; j < out_nr; j+=6, i+=2) { ')
> do_tri( intype, outtype, 'out+j', 'i', 'i+2', 'i+4' );
> - print ' }'
> + print(' }')
> postamble()
>
>
> @@ -227,16 +229,16 @@ def emit_funcs():
>
> def init(intype, outtype, prim):
> if intype == GENERATE:
> - print ('generate_line[' +
> + print(('generate_line[' +
> outtype_idx[outtype] +
> '][' + longprim[prim] +
> - '] = ' + name( intype, outtype, prim ) + ';')
> + '] = ' + name( intype, outtype, prim ) + ';'))
> else:
> - print ('translate_line[' +
> + print(('translate_line[' +
> intype_idx[intype] +
> '][' + outtype_idx[outtype] +
> '][' + longprim[prim] +
> - '] = ' + name( intype, outtype, prim ) + ';')
> + '] = ' + name( intype, outtype, prim ) + ';'))
>
>
> def emit_all_inits():
> @@ -246,19 +248,19 @@ def emit_all_inits():
> init(intype, outtype, prim)
>
> def emit_init():
> - print 'void u_unfilled_init( void )'
> - print '{'
> - print ' static int firsttime = 1;'
> - print ' if (!firsttime) return;'
> - print ' firsttime = 0;'
> + print('void u_unfilled_init( void )')
> + print('{')
> + print(' static int firsttime = 1;')
> + print(' if (!firsttime) return;')
> + print(' firsttime = 0;')
> emit_all_inits()
> - print '}'
> + print('}')
>
>
>
>
> def epilog():
> - print '#include "indices/u_unfilled_indices.c"'
> + print('#include "indices/u_unfilled_indices.c"')
>
>
> def main():
> diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py
> index c9b8cd7abc..7a952a48b3 100644
> --- a/src/gallium/auxiliary/util/u_format_pack.py
> +++ b/src/gallium/auxiliary/util/u_format_pack.py
> @@ -36,6 +36,8 @@
> '''
>
>
> +from __future__ import print_function
> +
> from u_format_parse import *
>
>
> @@ -53,11 +55,11 @@ def print_channels(format, func):
> if format.nr_channels() <= 1:
> func(format.le_channels, format.le_swizzles)
> else:
> - print '#ifdef PIPE_ARCH_BIG_ENDIAN'
> + print('#ifdef PIPE_ARCH_BIG_ENDIAN')
> func(format.be_channels, format.be_swizzles)
> - print '#else'
> + print('#else')
> func(format.le_channels, format.le_swizzles)
> - print '#endif'
> + print('#endif')
>
> def generate_format_type(format):
> '''Generate a structure that describes the format.'''
> @@ -68,18 +70,18 @@ def generate_format_type(format):
> for channel in channels:
> if channel.type == VOID:
> if channel.size:
> - print ' unsigned %s:%u;' % (channel.name, channel.size)
> + print(' unsigned %s:%u;' % (channel.name, channel.size))
> elif channel.type == UNSIGNED:
> - print ' unsigned %s:%u;' % (channel.name, channel.size)
> + print(' unsigned %s:%u;' % (channel.name, channel.size))
> elif channel.type in (SIGNED, FIXED):
> - print ' int %s:%u;' % (channel.name, channel.size)
> + print(' int %s:%u;' % (channel.name, channel.size))
> elif channel.type == FLOAT:
> if channel.size == 64:
> - print ' double %s;' % (channel.name)
> + print(' double %s;' % (channel.name))
> elif channel.size == 32:
> - print ' float %s;' % (channel.name)
> + print(' float %s;' % (channel.name))
> else:
> - print ' unsigned %s:%u;' % (channel.name, channel.size)
> + print(' unsigned %s:%u;' % (channel.name, channel.size))
> else:
> assert 0
>
> @@ -88,41 +90,41 @@ def generate_format_type(format):
> assert channel.size % 8 == 0 and is_pot(channel.size)
> if channel.type == VOID:
> if channel.size:
> - print ' uint%u_t %s;' % (channel.size, channel.name)
> + print(' uint%u_t %s;' % (channel.size, channel.name))
> elif channel.type == UNSIGNED:
> - print ' uint%u_t %s;' % (channel.size, channel.name)
> + print(' uint%u_t %s;' % (channel.size, channel.name))
> elif channel.type in (SIGNED, FIXED):
> - print ' int%u_t %s;' % (channel.size, channel.name)
> + print(' int%u_t %s;' % (channel.size, channel.name))
> elif channel.type == FLOAT:
> if channel.size == 64:
> - print ' double %s;' % (channel.name)
> + print(' double %s;' % (channel.name))
> elif channel.size == 32:
> - print ' float %s;' % (channel.name)
> + print(' float %s;' % (channel.name))
> elif channel.size == 16:
> - print ' uint16_t %s;' % (channel.name)
> + print(' uint16_t %s;' % (channel.name))
> else:
> assert 0
> else:
> assert 0
>
> - print 'union util_format_%s {' % format.short_name()
> + print('union util_format_%s {' % format.short_name())
>
> if format.block_size() in (8, 16, 32, 64):
> - print ' uint%u_t value;' % (format.block_size(),)
> + print(' uint%u_t value;' % (format.block_size(),))
>
> use_bitfields = False
> for channel in format.le_channels:
> if channel.size % 8 or not is_pot(channel.size):
> use_bitfields = True
>
> - print ' struct {'
> + print(' struct {')
> if use_bitfields:
> print_channels(format, generate_bitfields)
> else:
> print_channels(format, generate_full_fields)
> - print ' } chan;'
> - print '};'
> - print
> + print(' } chan;')
> + print('};')
> + print()
>
>
> def is_format_supported(format):
> @@ -444,15 +446,15 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type):
>
> def unpack_from_bitmask(channels, swizzles):
> depth = format.block_size()
> - print ' uint%u_t value = *(const uint%u_t *)src;' % (depth, depth)
> + print(' uint%u_t value = *(const uint%u_t *)src;' % (depth, depth))
>
> # Declare the intermediate variables
> for i in range(format.nr_channels()):
> src_channel = channels[i]
> if src_channel.type == UNSIGNED:
> - print ' uint%u_t %s;' % (depth, src_channel.name)
> + print(' uint%u_t %s;' % (depth, src_channel.name))
> elif src_channel.type == SIGNED:
> - print ' int%u_t %s;' % (depth, src_channel.name)
> + print(' int%u_t %s;' % (depth, src_channel.name))
>
> # Compute the intermediate unshifted values
> for i in range(format.nr_channels()):
> @@ -479,7 +481,7 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type):
> value = None
>
> if value is not None:
> - print ' %s = %s;' % (src_channel.name, value)
> + print(' %s = %s;' % (src_channel.name, value))
>
> # Convert, swizzle, and store final values
> for i in range(4):
> @@ -503,11 +505,11 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type):
> value = '0'
> else:
> assert False
> - print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i])
> + print(' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i]))
>
> def unpack_from_union(channels, swizzles):
> - print ' union util_format_%s pixel;' % format.short_name()
> - print ' memcpy(&pixel, src, sizeof pixel);'
> + print(' union util_format_%s pixel;' % format.short_name())
> + print(' memcpy(&pixel, src, sizeof pixel);')
>
> for i in range(4):
> swizzle = swizzles[i]
> @@ -530,7 +532,7 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type):
> value = '0'
> else:
> assert False
> - print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i])
> + print(' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i]))
>
> if format.is_bitmask():
> print_channels(format, unpack_from_bitmask)
> @@ -551,7 +553,7 @@ def generate_pack_kernel(format, src_channel, src_native_type):
> inv_swizzle = inv_swizzles(swizzles)
>
> depth = format.block_size()
> - print ' uint%u_t value = 0;' % depth
> + print(' uint%u_t value = 0;' % depth)
>
> for i in range(4):
> dst_channel = channels[i]
> @@ -577,14 +579,14 @@ def generate_pack_kernel(format, src_channel, src_native_type):
> else:
> value = None
> if value is not None:
> - print ' value |= %s;' % (value)
> + print(' value |= %s;' % (value))
>
> - print ' *(uint%u_t *)dst = value;' % depth
> + print(' *(uint%u_t *)dst = value;' % depth)
>
> def pack_into_union(channels, swizzles):
> inv_swizzle = inv_swizzles(swizzles)
>
> - print ' union util_format_%s pixel;' % format.short_name()
> + print(' union util_format_%s pixel;' % format.short_name())
>
> for i in range(4):
> dst_channel = channels[i]
> @@ -600,9 +602,9 @@ def generate_pack_kernel(format, src_channel, src_native_type):
> dst_channel, dst_native_type,
> value,
> dst_colorspace = dst_colorspace)
> - print ' pixel.chan.%s = %s;' % (dst_channel.name, value)
> + print(' pixel.chan.%s = %s;' % (dst_channel.name, value))
>
> - print ' memcpy(dst, &pixel, sizeof pixel);'
> + print(' memcpy(dst, &pixel, sizeof pixel);')
>
> if format.is_bitmask():
> print_channels(format, pack_into_bitmask)
> @@ -615,28 +617,28 @@ def generate_format_unpack(format, dst_channel, dst_native_type, dst_suffix):
>
> name = format.short_name()
>
> - print 'static inline void'
> - print 'util_format_%s_unpack_%s(%s *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)' % (name, dst_suffix, dst_native_type)
> - print '{'
> + print('static inline void')
> + print('util_format_%s_unpack_%s(%s *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)' % (name, dst_suffix, dst_native_type))
> + print('{')
>
> if is_format_supported(format):
> - print ' unsigned x, y;'
> - print ' for(y = 0; y < height; y += %u) {' % (format.block_height,)
> - print ' %s *dst = dst_row;' % (dst_native_type)
> - print ' const uint8_t *src = src_row;'
> - print ' for(x = 0; x < width; x += %u) {' % (format.block_width,)
> + print(' unsigned x, y;')
> + print(' for(y = 0; y < height; y += %u) {' % (format.block_height,))
> + print(' %s *dst = dst_row;' % (dst_native_type))
> + print(' const uint8_t *src = src_row;')
> + print(' for(x = 0; x < width; x += %u) {' % (format.block_width,))
>
> generate_unpack_kernel(format, dst_channel, dst_native_type)
>
> - print ' src += %u;' % (format.block_size() / 8,)
> - print ' dst += 4;'
> - print ' }'
> - print ' src_row += src_stride;'
> - print ' dst_row += dst_stride/sizeof(*dst_row);'
> - print ' }'
> -
> - print '}'
> - print
> + print(' src += %u;' % (format.block_size() / 8,))
> + print(' dst += 4;')
> + print(' }')
> + print(' src_row += src_stride;')
> + print(' dst_row += dst_stride/sizeof(*dst_row);')
> + print(' }')
> +
> + print('}')
> + print()
>
>
> def generate_format_pack(format, src_channel, src_native_type, src_suffix):
> @@ -644,28 +646,28 @@ def generate_format_pack(format, src_channel, src_native_type, src_suffix):
>
> name = format.short_name()
>
> - print 'static inline void'
> - print 'util_format_%s_pack_%s(uint8_t *dst_row, unsigned dst_stride, const %s *src_row, unsigned src_stride, unsigned width, unsigned height)' % (name, src_suffix, src_native_type)
> - print '{'
> + print('static inline void')
> + print('util_format_%s_pack_%s(uint8_t *dst_row, unsigned dst_stride, const %s *src_row, unsigned src_stride, unsigned width, unsigned height)' % (name, src_suffix, src_native_type))
> + print('{')
>
> if is_format_supported(format):
> - print ' unsigned x, y;'
> - print ' for(y = 0; y < height; y += %u) {' % (format.block_height,)
> - print ' const %s *src = src_row;' % (src_native_type)
> - print ' uint8_t *dst = dst_row;'
> - print ' for(x = 0; x < width; x += %u) {' % (format.block_width,)
> + print(' unsigned x, y;')
> + print(' for(y = 0; y < height; y += %u) {' % (format.block_height,))
> + print(' const %s *src = src_row;' % (src_native_type))
> + print(' uint8_t *dst = dst_row;')
> + print(' for(x = 0; x < width; x += %u) {' % (format.block_width,))
>
> generate_pack_kernel(format, src_channel, src_native_type)
>
> - print ' src += 4;'
> - print ' dst += %u;' % (format.block_size() / 8,)
> - print ' }'
> - print ' dst_row += dst_stride;'
> - print ' src_row += src_stride/sizeof(*src_row);'
> - print ' }'
> + print(' src += 4;')
> + print(' dst += %u;' % (format.block_size() / 8,))
> + print(' }')
> + print(' dst_row += dst_stride;')
> + print(' src_row += src_stride/sizeof(*src_row);')
> + print(' }')
>
> - print '}'
> - print
> + print('}')
> + print()
>
>
> def generate_format_fetch(format, dst_channel, dst_native_type, dst_suffix):
> @@ -673,15 +675,15 @@ def generate_format_fetch(format, dst_channel, dst_native_type, dst_suffix):
>
> name = format.short_name()
>
> - print 'static inline void'
> - print 'util_format_%s_fetch_%s(%s *dst, const uint8_t *src, UNUSED unsigned i, UNUSED unsigned j)' % (name, dst_suffix, dst_native_type)
> - print '{'
> + print('static inline void')
> + print('util_format_%s_fetch_%s(%s *dst, const uint8_t *src, UNUSED unsigned i, UNUSED unsigned j)' % (name, dst_suffix, dst_native_type))
> + print('{')
>
> if is_format_supported(format):
> generate_unpack_kernel(format, dst_channel, dst_native_type)
>
> - print '}'
> - print
> + print('}')
> + print()
>
>
> def is_format_hand_written(format):
> @@ -689,16 +691,16 @@ def is_format_hand_written(format):
>
>
> def generate(formats):
> - print
> - print '#include "pipe/p_compiler.h"'
> - print '#include "u_math.h"'
> - print '#include "u_half.h"'
> - print '#include "u_format.h"'
> - print '#include "u_format_other.h"'
> - print '#include "util/format_srgb.h"'
> - print '#include "u_format_yuv.h"'
> - print '#include "u_format_zs.h"'
> - print
> + print()
> + print('#include "pipe/p_compiler.h"')
> + print('#include "u_math.h"')
> + print('#include "u_half.h"')
> + print('#include "u_format.h"')
> + print('#include "u_format_other.h"')
> + print('#include "util/format_srgb.h"')
> + print('#include "u_format_yuv.h"')
> + print('#include "u_format_zs.h"')
> + print()
>
> for format in formats:
> if not is_format_hand_written(format):
> diff --git a/src/gallium/auxiliary/util/u_format_table.py b/src/gallium/auxiliary/util/u_format_table.py
> index a9df984994..1a966c52bc 100644
> --- a/src/gallium/auxiliary/util/u_format_table.py
> +++ b/src/gallium/auxiliary/util/u_format_table.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>
> CopyRight = '''
> /**************************************************************************
> @@ -79,23 +80,23 @@ swizzle_map = {
>
>
> def write_format_table(formats):
> - print '/* This file is autogenerated by u_format_table.py from u_format.csv. Do not edit directly. */'
> - print
> + print('/* This file is autogenerated by u_format_table.py from u_format.csv. Do not edit directly. */')
> + print()
> # This will print the copyright message on the top of this file
> - print CopyRight.strip()
> - print
> - print '#include "u_format.h"'
> - print '#include "u_format_bptc.h"'
> - print '#include "u_format_s3tc.h"'
> - print '#include "u_format_rgtc.h"'
> - print '#include "u_format_latc.h"'
> - print '#include "u_format_etc.h"'
> - print
> + print(CopyRight.strip())
> + print()
> + print('#include "u_format.h"')
> + print('#include "u_format_bptc.h"')
> + print('#include "u_format_s3tc.h"')
> + print('#include "u_format_rgtc.h"')
> + print('#include "u_format_latc.h"')
> + print('#include "u_format_etc.h"')
> + print()
>
> u_format_pack.generate(formats)
>
> def do_channel_array(channels, swizzles):
> - print " {"
> + print(" {")
> for i in range(4):
> channel = channels[i]
> if i < 3:
> @@ -103,13 +104,13 @@ def write_format_table(formats):
> else:
> sep = ""
> if channel.size:
> - print " {%s, %s, %s, %u, %u}%s\t/* %s = %s */" % (type_map[channel.type], bool_map(channel.norm), bool_map(channel.pure), channel.size, channel.shift, sep, "xyzw"[i], channel.name)
> + print(" {%s, %s, %s, %u, %u}%s\t/* %s = %s */" % (type_map[channel.type], bool_map(channel.norm), bool_map(channel.pure), channel.size, channel.shift, sep, "xyzw"[i], channel.name))
> else:
> - print " {0, 0, 0, 0, 0}%s" % (sep,)
> - print " },"
> + print(" {0, 0, 0, 0, 0}%s" % (sep,))
> + print(" },")
>
> def do_swizzle_array(channels, swizzles):
> - print " {"
> + print(" {")
> for i in range(4):
> swizzle = swizzles[i]
> if i < 3:
> @@ -120,102 +121,102 @@ def write_format_table(formats):
> comment = colorspace_channels_map[format.colorspace][i]
> except (KeyError, IndexError):
> comment = 'ignored'
> - print " %s%s\t/* %s */" % (swizzle_map[swizzle], sep, comment)
> - print " },"
> + print(" %s%s\t/* %s */" % (swizzle_map[swizzle], sep, comment))
> + print(" },")
>
> for format in formats:
> - print 'const struct util_format_description'
> - print 'util_format_%s_description = {' % (format.short_name(),)
> - print " %s," % (format.name,)
> - print " \"%s\"," % (format.name,)
> - print " \"%s\"," % (format.short_name(),)
> - print " {%u, %u, %u},\t/* block */" % (format.block_width, format.block_height, format.block_size())
> - print " %s," % (layout_map(format.layout),)
> - print " %u,\t/* nr_channels */" % (format.nr_channels(),)
> - print " %s,\t/* is_array */" % (bool_map(format.is_array()),)
> - print " %s,\t/* is_bitmask */" % (bool_map(format.is_bitmask()),)
> - print " %s,\t/* is_mixed */" % (bool_map(format.is_mixed()),)
> + print('const struct util_format_description')
> + print('util_format_%s_description = {' % (format.short_name(),))
> + print(" %s," % (format.name,))
> + print(" \"%s\"," % (format.name,))
> + print(" \"%s\"," % (format.short_name(),))
> + print(" {%u, %u, %u},\t/* block */" % (format.block_width, format.block_height, format.block_size()))
> + print(" %s," % (layout_map(format.layout),))
> + print(" %u,\t/* nr_channels */" % (format.nr_channels(),))
> + print(" %s,\t/* is_array */" % (bool_map(format.is_array()),))
> + print(" %s,\t/* is_bitmask */" % (bool_map(format.is_bitmask()),))
> + print(" %s,\t/* is_mixed */" % (bool_map(format.is_mixed()),))
> u_format_pack.print_channels(format, do_channel_array)
> u_format_pack.print_channels(format, do_swizzle_array)
> - print " %s," % (colorspace_map(format.colorspace),)
> + print(" %s," % (colorspace_map(format.colorspace),))
> access = True
> if format.layout == 'astc':
> access = False
> if format.layout == 'etc' and format.short_name() != 'etc1_rgb8':
> access = False
> if format.colorspace != ZS and not format.is_pure_color() and access:
> - print " &util_format_%s_unpack_rgba_8unorm," % format.short_name()
> - print " &util_format_%s_pack_rgba_8unorm," % format.short_name()
> + print(" &util_format_%s_unpack_rgba_8unorm," % format.short_name())
> + print(" &util_format_%s_pack_rgba_8unorm," % format.short_name())
> if format.layout == 's3tc' or format.layout == 'rgtc':
> - print " &util_format_%s_fetch_rgba_8unorm," % format.short_name()
> + print(" &util_format_%s_fetch_rgba_8unorm," % format.short_name())
> else:
> - print " NULL, /* fetch_rgba_8unorm */"
> - print " &util_format_%s_unpack_rgba_float," % format.short_name()
> - print " &util_format_%s_pack_rgba_float," % format.short_name()
> - print " &util_format_%s_fetch_rgba_float," % format.short_name()
> + print(" NULL, /* fetch_rgba_8unorm */")
> + print(" &util_format_%s_unpack_rgba_float," % format.short_name())
> + print(" &util_format_%s_pack_rgba_float," % format.short_name())
> + print(" &util_format_%s_fetch_rgba_float," % format.short_name())
> else:
> - print " NULL, /* unpack_rgba_8unorm */"
> - print " NULL, /* pack_rgba_8unorm */"
> - print " NULL, /* fetch_rgba_8unorm */"
> - print " NULL, /* unpack_rgba_float */"
> - print " NULL, /* pack_rgba_float */"
> - print " NULL, /* fetch_rgba_float */"
> + print(" NULL, /* unpack_rgba_8unorm */")
> + print(" NULL, /* pack_rgba_8unorm */")
> + print(" NULL, /* fetch_rgba_8unorm */")
> + print(" NULL, /* unpack_rgba_float */")
> + print(" NULL, /* pack_rgba_float */")
> + print(" NULL, /* fetch_rgba_float */")
> if format.has_depth():
> - print " &util_format_%s_unpack_z_32unorm," % format.short_name()
> - print " &util_format_%s_pack_z_32unorm," % format.short_name()
> - print " &util_format_%s_unpack_z_float," % format.short_name()
> - print " &util_format_%s_pack_z_float," % format.short_name()
> + print(" &util_format_%s_unpack_z_32unorm," % format.short_name())
> + print(" &util_format_%s_pack_z_32unorm," % format.short_name())
> + print(" &util_format_%s_unpack_z_float," % format.short_name())
> + print(" &util_format_%s_pack_z_float," % format.short_name())
> else:
> - print " NULL, /* unpack_z_32unorm */"
> - print " NULL, /* pack_z_32unorm */"
> - print " NULL, /* unpack_z_float */"
> - print " NULL, /* pack_z_float */"
> + print(" NULL, /* unpack_z_32unorm */")
> + print(" NULL, /* pack_z_32unorm */")
> + print(" NULL, /* unpack_z_float */")
> + print(" NULL, /* pack_z_float */")
> if format.has_stencil():
> - print " &util_format_%s_unpack_s_8uint," % format.short_name()
> - print " &util_format_%s_pack_s_8uint," % format.short_name()
> + print(" &util_format_%s_unpack_s_8uint," % format.short_name())
> + print(" &util_format_%s_pack_s_8uint," % format.short_name())
> else:
> - print " NULL, /* unpack_s_8uint */"
> - print " NULL, /* pack_s_8uint */"
> + print(" NULL, /* unpack_s_8uint */")
> + print(" NULL, /* pack_s_8uint */")
> if format.is_pure_unsigned():
> - print " &util_format_%s_unpack_unsigned, /* unpack_rgba_uint */" % format.short_name()
> - print " &util_format_%s_pack_unsigned, /* pack_rgba_uint */" % format.short_name()
> - print " &util_format_%s_unpack_signed, /* unpack_rgba_sint */" % format.short_name()
> - print " &util_format_%s_pack_signed, /* pack_rgba_sint */" % format.short_name()
> - print " &util_format_%s_fetch_unsigned, /* fetch_rgba_uint */" % format.short_name()
> - print " NULL /* fetch_rgba_sint */"
> + print(" &util_format_%s_unpack_unsigned, /* unpack_rgba_uint */" % format.short_name())
> + print(" &util_format_%s_pack_unsigned, /* pack_rgba_uint */" % format.short_name())
> + print(" &util_format_%s_unpack_signed, /* unpack_rgba_sint */" % format.short_name())
> + print(" &util_format_%s_pack_signed, /* pack_rgba_sint */" % format.short_name())
> + print(" &util_format_%s_fetch_unsigned, /* fetch_rgba_uint */" % format.short_name())
> + print(" NULL /* fetch_rgba_sint */")
> elif format.is_pure_signed():
> - print " &util_format_%s_unpack_unsigned, /* unpack_rgba_uint */" % format.short_name()
> - print " &util_format_%s_pack_unsigned, /* pack_rgba_uint */" % format.short_name()
> - print " &util_format_%s_unpack_signed, /* unpack_rgba_sint */" % format.short_name()
> - print " &util_format_%s_pack_signed, /* pack_rgba_sint */" % format.short_name()
> - print " NULL, /* fetch_rgba_uint */"
> - print " &util_format_%s_fetch_signed /* fetch_rgba_sint */" % format.short_name()
> + print(" &util_format_%s_unpack_unsigned, /* unpack_rgba_uint */" % format.short_name())
> + print(" &util_format_%s_pack_unsigned, /* pack_rgba_uint */" % format.short_name())
> + print(" &util_format_%s_unpack_signed, /* unpack_rgba_sint */" % format.short_name())
> + print(" &util_format_%s_pack_signed, /* pack_rgba_sint */" % format.short_name())
> + print(" NULL, /* fetch_rgba_uint */")
> + print(" &util_format_%s_fetch_signed /* fetch_rgba_sint */" % format.short_name())
> else:
> - print " NULL, /* unpack_rgba_uint */"
> - print " NULL, /* pack_rgba_uint */"
> - print " NULL, /* unpack_rgba_sint */"
> - print " NULL, /* pack_rgba_sint */"
> - print " NULL, /* fetch_rgba_uint */"
> - print " NULL /* fetch_rgba_sint */"
> - print "};"
> - print
> + print(" NULL, /* unpack_rgba_uint */")
> + print(" NULL, /* pack_rgba_uint */")
> + print(" NULL, /* unpack_rgba_sint */")
> + print(" NULL, /* pack_rgba_sint */")
> + print(" NULL, /* fetch_rgba_uint */")
> + print(" NULL /* fetch_rgba_sint */")
> + print("};")
> + print()
>
> - print "const struct util_format_description *"
> - print "util_format_description(enum pipe_format format)"
> - print "{"
> - print " if (format >= PIPE_FORMAT_COUNT) {"
> - print " return NULL;"
> - print " }"
> - print
> - print " switch (format) {"
> + print("const struct util_format_description *")
> + print("util_format_description(enum pipe_format format)")
> + print("{")
> + print(" if (format >= PIPE_FORMAT_COUNT) {")
> + print(" return NULL;")
> + print(" }")
> + print()
> + print(" switch (format) {")
> for format in formats:
> - print " case %s:" % format.name
> - print " return &util_format_%s_description;" % (format.short_name(),)
> - print " default:"
> - print " return NULL;"
> - print " }"
> - print "}"
> - print
> + print(" case %s:" % format.name)
> + print(" return &util_format_%s_description;" % (format.short_name(),))
> + print(" default:")
> + print(" return NULL;")
> + print(" }")
> + print("}")
> + print()
>
>
> def main():
> diff --git a/src/gallium/drivers/freedreno/ir3/ir3_nir_trig.py b/src/gallium/drivers/freedreno/ir3/ir3_nir_trig.py
> index a0ab9d0190..3968aea543 100644
> --- a/src/gallium/drivers/freedreno/ir3/ir3_nir_trig.py
> +++ b/src/gallium/drivers/freedreno/ir3/ir3_nir_trig.py
> @@ -20,6 +20,8 @@
> # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> # IN THE SOFTWARE.
>
> +from __future__ import print_function
> +
> import argparse
> import sys
>
> @@ -40,9 +42,9 @@ def main():
> def run():
> import nir_algebraic # pylint: disable=import-error
>
> - print '#include "ir3_nir.h"'
> - print nir_algebraic.AlgebraicPass("ir3_nir_apply_trig_workarounds",
> - trig_workarounds).render()
> + print('#include "ir3_nir.h"')
> + print(nir_algebraic.AlgebraicPass("ir3_nir_apply_trig_workarounds",
> + trig_workarounds).render())
>
>
> if __name__ == '__main__':
> diff --git a/src/gallium/drivers/r600/egd_tables.py b/src/gallium/drivers/r600/egd_tables.py
> index d7b78c7fb1..7489649ec7 100644
> --- a/src/gallium/drivers/r600/egd_tables.py
> +++ b/src/gallium/drivers/r600/egd_tables.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>
> CopyRight = '''
> /*
> @@ -217,10 +218,10 @@ def write_tables(regs, packets):
> strings = StringTable()
> strings_offsets = IntTable("int")
>
> - print '/* This file is autogenerated by egd_tables.py from evergreend.h. Do not edit directly. */'
> - print
> - print CopyRight.strip()
> - print '''
> + print('/* This file is autogenerated by egd_tables.py from evergreend.h. Do not edit directly. */')
> + print()
> + print(CopyRight.strip())
> + print('''
> #ifndef EG_TABLES_H
> #define EG_TABLES_H
>
> @@ -242,20 +243,20 @@ struct eg_packet3 {
> unsigned name_offset;
> unsigned op;
> };
> -'''
> +''')
>
> - print 'static const struct eg_packet3 packet3_table[] = {'
> + print('static const struct eg_packet3 packet3_table[] = {')
> for pkt in packets:
> - print '\t{%s, %s},' % (strings.add(pkt[5:]), pkt)
> - print '};'
> - print
> + print('\t{%s, %s},' % (strings.add(pkt[5:]), pkt))
> + print('};')
> + print()
>
> - print 'static const struct eg_field egd_fields_table[] = {'
> + print('static const struct eg_field egd_fields_table[] = {')
>
> fields_idx = 0
> for reg in regs:
> if len(reg.fields) and reg.own_fields:
> - print '\t/* %s */' % (fields_idx)
> + print('\t/* %s */' % (fields_idx))
>
> reg.fields_idx = fields_idx
>
> @@ -266,34 +267,34 @@ struct eg_packet3 {
> while value[1] >= len(values_offsets):
> values_offsets.append(-1)
> values_offsets[value[1]] = strings.add(strip_prefix(value[0]))
> - print '\t{%s, %s(~0u), %s, %s},' % (
> + print('\t{%s, %s(~0u), %s, %s},' % (
> strings.add(field.name), field.s_name,
> - len(values_offsets), strings_offsets.add(values_offsets))
> + len(values_offsets), strings_offsets.add(values_offsets)))
> else:
> - print '\t{%s, %s(~0u)},' % (strings.add(field.name), field.s_name)
> + print('\t{%s, %s(~0u)},' % (strings.add(field.name), field.s_name))
> fields_idx += 1
>
> - print '};'
> - print
> + print('};')
> + print()
>
> - print 'static const struct eg_reg egd_reg_table[] = {'
> + print('static const struct eg_reg egd_reg_table[] = {')
> for reg in regs:
> if len(reg.fields):
> - print '\t{%s, %s, %s, %s},' % (strings.add(reg.name), reg.r_name,
> - len(reg.fields), reg.fields_idx if reg.own_fields else reg.fields_owner.fields_idx)
> + print('\t{%s, %s, %s, %s},' % (strings.add(reg.name), reg.r_name,
> + len(reg.fields), reg.fields_idx if reg.own_fields else reg.fields_owner.fields_idx))
> else:
> - print '\t{%s, %s},' % (strings.add(reg.name), reg.r_name)
> - print '};'
> - print
> + print('\t{%s, %s},' % (strings.add(reg.name), reg.r_name))
> + print('};')
> + print()
>
> strings.emit(sys.stdout, "egd_strings")
>
> - print
> + print()
>
> strings_offsets.emit(sys.stdout, "egd_strings_offsets")
>
> - print
> - print '#endif'
> + print()
> + print('#endif')
>
>
> def main():
> diff --git a/src/intel/compiler/brw_nir_trig_workarounds.py b/src/intel/compiler/brw_nir_trig_workarounds.py
> index 3d08b9a41e..d60e094c62 100644
> --- a/src/intel/compiler/brw_nir_trig_workarounds.py
> +++ b/src/intel/compiler/brw_nir_trig_workarounds.py
> @@ -31,6 +31,8 @@
> # amplitude slightly. Apparently this also minimizes the error function,
> # reducing the maximum error from 0.00006 to about 0.00003.
>
> +from __future__ import print_function
> +
> import argparse
> import sys
>
> @@ -51,9 +53,9 @@ def main():
> def run():
> import nir_algebraic # pylint: disable=import-error
>
> - print '#include "brw_nir.h"'
> - print nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds",
> - TRIG_WORKAROUNDS).render()
> + print('#include "brw_nir.h"')
> + print(nir_algebraic.AlgebraicPass("brw_nir_apply_trig_workarounds",
> + TRIG_WORKAROUNDS).render())
>
>
> if __name__ == '__main__':
> diff --git a/src/mapi/glapi/gen/glX_proto_common.py b/src/mapi/glapi/gen/glX_proto_common.py
> index bd1192cb47..adc20dc9f0 100644
> --- a/src/mapi/glapi/gen/glX_proto_common.py
> +++ b/src/mapi/glapi/gen/glX_proto_common.py
> @@ -24,6 +24,8 @@
> # Authors:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> import gl_XML, glX_XML
> import string
>
> @@ -80,12 +82,12 @@ class glx_print_proto(gl_XML.gl_print_base):
>
> compsize = self.size_call(f)
> if compsize:
> - print ' const GLuint compsize = %s;' % (compsize)
> + print(' const GLuint compsize = %s;' % (compsize))
>
> if bias:
> - print ' const GLuint cmdlen = %s - %u;' % (f.command_length(), bias)
> + print(' const GLuint cmdlen = %s - %u;' % (f.command_length(), bias))
> else:
> - print ' const GLuint cmdlen = %s;' % (f.command_length())
> + print(' const GLuint cmdlen = %s;' % (f.command_length()))
>
> #print ''
> return compsize
> diff --git a/src/mapi/glapi/gen/glX_proto_send.py b/src/mapi/glapi/gen/glX_proto_send.py
> index d458214fb7..f199e9a0a1 100644
> --- a/src/mapi/glapi/gen/glX_proto_send.py
> +++ b/src/mapi/glapi/gen/glX_proto_send.py
> @@ -26,6 +26,8 @@
> # Ian Romanick <idr at us.ibm.com>
> # Jeremy Kolb <jkolb at brandeis.edu>
>
> +from __future__ import print_function
> +
> import argparse
>
> import gl_XML, glX_XML, glX_proto_common, license
> @@ -163,58 +165,58 @@ class PrintGlxProtoStubs(glX_proto_common.glx_print_proto):
> return
>
> def printRealHeader(self):
> - print ''
> - print '#include <GL/gl.h>'
> - print '#include "indirect.h"'
> - print '#include "glxclient.h"'
> - print '#include "indirect_size.h"'
> - print '#include "glapi.h"'
> - print '#include <GL/glxproto.h>'
> - print '#include <X11/Xlib-xcb.h>'
> - print '#include <xcb/xcb.h>'
> - print '#include <xcb/glx.h>'
> - print '#include <limits.h>'
> -
> - print ''
> + print('')
> + print('#include <GL/gl.h>')
> + print('#include "indirect.h"')
> + print('#include "glxclient.h"')
> + print('#include "indirect_size.h"')
> + print('#include "glapi.h"')
> + print('#include <GL/glxproto.h>')
> + print('#include <X11/Xlib-xcb.h>')
> + print('#include <xcb/xcb.h>')
> + print('#include <xcb/glx.h>')
> + print('#include <limits.h>')
> +
> + print('')
> self.printFastcall()
> self.printNoinline()
> - print ''
> -
> - print 'static _X_INLINE int safe_add(int a, int b)'
> - print '{'
> - print ' if (a < 0 || b < 0) return -1;'
> - print ' if (INT_MAX - a < b) return -1;'
> - print ' return a + b;'
> - print '}'
> - print 'static _X_INLINE int safe_mul(int a, int b)'
> - print '{'
> - print ' if (a < 0 || b < 0) return -1;'
> - print ' if (a == 0 || b == 0) return 0;'
> - print ' if (a > INT_MAX / b) return -1;'
> - print ' return a * b;'
> - print '}'
> - print 'static _X_INLINE int safe_pad(int a)'
> - print '{'
> - print ' int ret;'
> - print ' if (a < 0) return -1;'
> - print ' if ((ret = safe_add(a, 3)) < 0) return -1;'
> - print ' return ret & (GLuint)~3;'
> - print '}'
> - print ''
> -
> - print '#ifndef __GNUC__'
> - print '# define __builtin_expect(x, y) x'
> - print '#endif'
> - print ''
> - print '/* If the size and opcode values are known at compile-time, this will, on'
> - print ' * x86 at least, emit them with a single instruction.'
> - print ' */'
> - print '#define emit_header(dest, op, size) \\'
> - print ' do { union { short s[2]; int i; } temp; \\'
> - print ' temp.s[0] = (size); temp.s[1] = (op); \\'
> - print ' *((int *)(dest)) = temp.i; } while(0)'
> - print ''
> - print """NOINLINE CARD32
> + print('')
> +
> + print('static _X_INLINE int safe_add(int a, int b)')
> + print('{')
> + print(' if (a < 0 || b < 0) return -1;')
> + print(' if (INT_MAX - a < b) return -1;')
> + print(' return a + b;')
> + print('}')
> + print('static _X_INLINE int safe_mul(int a, int b)')
> + print('{')
> + print(' if (a < 0 || b < 0) return -1;')
> + print(' if (a == 0 || b == 0) return 0;')
> + print(' if (a > INT_MAX / b) return -1;')
> + print(' return a * b;')
> + print('}')
> + print('static _X_INLINE int safe_pad(int a)')
> + print('{')
> + print(' int ret;')
> + print(' if (a < 0) return -1;')
> + print(' if ((ret = safe_add(a, 3)) < 0) return -1;')
> + print(' return ret & (GLuint)~3;')
> + print('}')
> + print('')
> +
> + print('#ifndef __GNUC__')
> + print('# define __builtin_expect(x, y) x')
> + print('#endif')
> + print('')
> + print('/* If the size and opcode values are known at compile-time, this will, on')
> + print(' * x86 at least, emit them with a single instruction.')
> + print(' */')
> + print('#define emit_header(dest, op, size) \\')
> + print(' do { union { short s[2]; int i; } temp; \\')
> + print(' temp.s[0] = (size); temp.s[1] = (op); \\')
> + print(' *((int *)(dest)) = temp.i; } while(0)')
> + print('')
> + print("""NOINLINE CARD32
> __glXReadReply( Display *dpy, size_t size, void * dest, GLboolean reply_is_always_array )
> {
> xGLXSingleReply reply;
> @@ -326,7 +328,7 @@ const GLuint __glXDefaultPixelStore[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 1 };
> #define default_pixel_store_3D_size 36
> #define default_pixel_store_4D (__glXDefaultPixelStore+0)
> #define default_pixel_store_4D_size 36
> -"""
> +""")
>
> for size in self.generic_sizes:
> self.print_generic_function(size)
> @@ -381,20 +383,20 @@ const GLuint __glXDefaultPixelStore[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 1 };
> if func.has_different_protocol(n):
> procs[n] = func.static_glx_name(n)
>
> - print """
> + print("""
> #ifdef GLX_INDIRECT_RENDERING
>
> static const struct proc_pair
> {
> const char *name;
> _glapi_proc proc;
> -} proc_pairs[%d] = {""" % len(procs)
> +} proc_pairs[%d] = {""" % len(procs))
> names = procs.keys()
> names.sort()
> for i in xrange(len(names)):
> comma = ',' if i < len(names) - 1 else ''
> - print ' { "%s", (_glapi_proc) gl%s }%s' % (names[i], procs[names[i]], comma)
> - print """};
> + print(' { "%s", (_glapi_proc) gl%s }%s' % (names[i], procs[names[i]], comma))
> + print("""};
>
> static int
> __indirect_get_proc_compare(const void *key, const void *memb)
> @@ -419,16 +421,16 @@ __indirect_get_proc_address(const char *name)
> }
>
> #endif /* GLX_INDIRECT_RENDERING */
> -"""
> +""")
> return
>
>
> def printFunction(self, func, name):
> footer = '}\n'
> if func.glx_rop == ~0:
> - print 'static %s' % (func.return_type)
> - print '%s( unsigned opcode, unsigned dim, %s )' % (func.name, func.get_parameter_string())
> - print '{'
> + print('static %s' % (func.return_type))
> + print('%s( unsigned opcode, unsigned dim, %s )' % (func.name, func.get_parameter_string()))
> + print('{')
> else:
> if func.has_different_protocol(name):
> if func.return_type == "void":
> @@ -437,27 +439,27 @@ __indirect_get_proc_address(const char *name)
> ret_string = "return "
>
> func_name = func.static_glx_name(name)
> - print '#define %s %d' % (func.opcode_vendor_name(name), func.glx_vendorpriv)
> - print '%s gl%s(%s)' % (func.return_type, func_name, func.get_parameter_string())
> - print '{'
> - print ' struct glx_context * const gc = __glXGetCurrentContext();'
> - print ''
> - print '#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)'
> - print ' if (gc->isDirect) {'
> - print ' const _glapi_proc *const disp_table = (_glapi_proc *)GET_DISPATCH();'
> - print ' PFNGL%sPROC p =' % (name.upper())
> - print ' (PFNGL%sPROC) disp_table[%d];' % (name.upper(), func.offset)
> - print ' %sp(%s);' % (ret_string, func.get_called_parameter_string())
> - print ' } else'
> - print '#endif'
> - print ' {'
> + print('#define %s %d' % (func.opcode_vendor_name(name), func.glx_vendorpriv))
> + print('%s gl%s(%s)' % (func.return_type, func_name, func.get_parameter_string()))
> + print('{')
> + print(' struct glx_context * const gc = __glXGetCurrentContext();')
> + print('')
> + print('#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)')
> + print(' if (gc->isDirect) {')
> + print(' const _glapi_proc *const disp_table = (_glapi_proc *)GET_DISPATCH();')
> + print(' PFNGL%sPROC p =' % (name.upper()))
> + print(' (PFNGL%sPROC) disp_table[%d];' % (name.upper(), func.offset))
> + print(' %sp(%s);' % (ret_string, func.get_called_parameter_string()))
> + print(' } else')
> + print('#endif')
> + print(' {')
>
> footer = '}\n}\n'
> else:
> - print '#define %s %d' % (func.opcode_name(), func.opcode_value())
> + print('#define %s %d' % (func.opcode_name(), func.opcode_value()))
>
> - print '%s __indirect_gl%s(%s)' % (func.return_type, name, func.get_parameter_string())
> - print '{'
> + print('%s __indirect_gl%s(%s)' % (func.return_type, name, func.get_parameter_string()))
> + print('{')
>
>
> if func.glx_rop != 0 or func.vectorequiv != None:
> @@ -469,15 +471,15 @@ __indirect_get_proc_address(const char *name)
> self.printSingleFunction(func, name)
> pass
> else:
> - print "/* Missing GLX protocol for %s. */" % (name)
> + print("/* Missing GLX protocol for %s. */" % (name))
>
> - print footer
> + print(footer)
> return
>
>
> def print_generic_function(self, n):
> size = (n + 3) & ~3
> - print """static FASTCALL NOINLINE void
> + print("""static FASTCALL NOINLINE void
> generic_%u_byte( GLint rop, const void * ptr )
> {
> struct glx_context * const gc = __glXGetCurrentContext();
> @@ -488,7 +490,7 @@ generic_%u_byte( GLint rop, const void * ptr )
> gc->pc += cmdlen;
> if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); }
> }
> -""" % (n, size + 4, size)
> +""" % (n, size + 4, size))
> return
>
>
> @@ -499,14 +501,14 @@ generic_%u_byte( GLint rop, const void * ptr )
> src_ptr = "&" + p.name
>
> if p.is_padding:
> - print '(void) memset((void *)(%s + %u), 0, %s);' \
> - % (pc, p.offset + adjust, p.size_string() )
> + print('(void) memset((void *)(%s + %u), 0, %s);' \
> + % (pc, p.offset + adjust, p.size_string() ))
> elif not extra_offset:
> - print '(void) memcpy((void *)(%s + %u), (void *)(%s), %s);' \
> - % (pc, p.offset + adjust, src_ptr, p.size_string() )
> + print('(void) memcpy((void *)(%s + %u), (void *)(%s), %s);' \
> + % (pc, p.offset + adjust, src_ptr, p.size_string() ))
> else:
> - print '(void) memcpy((void *)(%s + %u + %s), (void *)(%s), %s);' \
> - % (pc, p.offset + adjust, extra_offset, src_ptr, p.size_string() )
> + print('(void) memcpy((void *)(%s + %u + %s), (void *)(%s), %s);' \
> + % (pc, p.offset + adjust, extra_offset, src_ptr, p.size_string() ))
>
> def common_emit_args(self, f, pc, adjust, skip_vla):
> extra_offset = None
> @@ -542,7 +544,7 @@ generic_%u_byte( GLint rop, const void * ptr )
> self.common_emit_one_arg(param, pc, adjust, None)
>
> if f.pad_after(param):
> - print '(void) memcpy((void *)(%s + %u), zero, 4);' % (pc, (param.offset + param.size()) + adjust)
> + print('(void) memcpy((void *)(%s + %u), zero, 4);' % (pc, (param.offset + param.size()) + adjust))
>
> else:
> [dim, width, height, depth, extent] = param.get_dimensions()
> @@ -552,14 +554,14 @@ generic_%u_byte( GLint rop, const void * ptr )
> dim_str = str(dim)
>
> if param.is_padding:
> - print '(void) memset((void *)(%s + %u), 0, %s);' \
> - % (pc, (param.offset - 4) + adjust, param.size_string() )
> + print('(void) memset((void *)(%s + %u), 0, %s);' \
> + % (pc, (param.offset - 4) + adjust, param.size_string() ))
>
> if param.img_null_flag:
> if large:
> - print '(void) memcpy((void *)(%s + %u), zero, 4);' % (pc, (param.offset - 4) + adjust)
> + print('(void) memcpy((void *)(%s + %u), zero, 4);' % (pc, (param.offset - 4) + adjust))
> else:
> - print '(void) memcpy((void *)(%s + %u), (void *)((%s == NULL) ? one : zero), 4);' % (pc, (param.offset - 4) + adjust, param.name)
> + print('(void) memcpy((void *)(%s + %u), (void *)((%s == NULL) ? one : zero), 4);' % (pc, (param.offset - 4) + adjust, param.name))
>
>
> pixHeaderPtr = "%s + %u" % (pc, adjust)
> @@ -571,13 +573,13 @@ generic_%u_byte( GLint rop, const void * ptr )
> else:
> condition = 'compsize > 0'
>
> - print 'if (%s) {' % (condition)
> - print ' gc->fillImage(gc, %s, %s, %s, %s, %s, %s, %s, %s, %s);' % (dim_str, width, height, depth, param.img_format, param.img_type, param.name, pcPtr, pixHeaderPtr)
> - print '} else {'
> - print ' (void) memcpy( %s, default_pixel_store_%uD, default_pixel_store_%uD_size );' % (pixHeaderPtr, dim, dim)
> - print '}'
> + print('if (%s) {' % (condition))
> + print(' gc->fillImage(gc, %s, %s, %s, %s, %s, %s, %s, %s, %s);' % (dim_str, width, height, depth, param.img_format, param.img_type, param.name, pcPtr, pixHeaderPtr))
> + print('} else {')
> + print(' (void) memcpy( %s, default_pixel_store_%uD, default_pixel_store_%uD_size );' % (pixHeaderPtr, dim, dim))
> + print('}')
> else:
> - print '__glXSendLargeImage(gc, compsize, %s, %s, %s, %s, %s, %s, %s, %s, %s);' % (dim_str, width, height, depth, param.img_format, param.img_type, param.name, pcPtr, pixHeaderPtr)
> + print('__glXSendLargeImage(gc, compsize, %s, %s, %s, %s, %s, %s, %s, %s, %s);' % (dim_str, width, height, depth, param.img_format, param.img_type, param.name, pcPtr, pixHeaderPtr))
>
> return
>
> @@ -586,16 +588,16 @@ generic_%u_byte( GLint rop, const void * ptr )
> if not op_name:
> op_name = f.opcode_real_name()
>
> - print 'const GLint op = %s;' % (op_name)
> - print 'const GLuint cmdlenLarge = cmdlen + 4;'
> - print 'GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc);'
> - print '(void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4);'
> - print '(void) memcpy((void *)(pc + 4), (void *)(&op), 4);'
> + print('const GLint op = %s;' % (op_name))
> + print('const GLuint cmdlenLarge = cmdlen + 4;')
> + print('GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc);')
> + print('(void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4);')
> + print('(void) memcpy((void *)(pc + 4), (void *)(&op), 4);')
> return
>
>
> def common_func_print_just_start(self, f, name):
> - print ' struct glx_context * const gc = __glXGetCurrentContext();'
> + print(' struct glx_context * const gc = __glXGetCurrentContext();')
>
> # The only reason that single and vendor private commands need
> # a variable called 'dpy' is because they use the SyncHandle
> @@ -613,10 +615,10 @@ generic_%u_byte( GLint rop, const void * ptr )
> if not f.glx_rop:
> for p in f.parameterIterateOutputs():
> if p.is_image() and (p.img_format != "GL_COLOR_INDEX" or p.img_type != "GL_BITMAP"):
> - print ' const __GLXattribute * const state = gc->client_state_private;'
> + print(' const __GLXattribute * const state = gc->client_state_private;')
> break
>
> - print ' Display * const dpy = gc->currentDpy;'
> + print(' Display * const dpy = gc->currentDpy;')
> skip_condition = "dpy != NULL"
> elif f.can_be_large:
> skip_condition = "gc->currentDpy != NULL"
> @@ -625,35 +627,35 @@ generic_%u_byte( GLint rop, const void * ptr )
>
>
> if f.return_type != 'void':
> - print ' %s retval = (%s) 0;' % (f.return_type, f.return_type)
> + print(' %s retval = (%s) 0;' % (f.return_type, f.return_type))
>
>
> if name != None and name not in f.glx_vendorpriv_names:
> - print '#ifndef USE_XCB'
> + print('#ifndef USE_XCB')
> self.emit_packet_size_calculation(f, 0)
> if name != None and name not in f.glx_vendorpriv_names:
> - print '#endif'
> + print('#endif')
>
> if f.command_variable_length() != "":
> - print " if (0%s < 0) {" % f.command_variable_length()
> - print " __glXSetError(gc, GL_INVALID_VALUE);"
> + print(" if (0%s < 0) {" % f.command_variable_length())
> + print(" __glXSetError(gc, GL_INVALID_VALUE);")
> if f.return_type != 'void':
> - print " return 0;"
> + print(" return 0;")
> else:
> - print " return;"
> - print " }"
> + print(" return;")
> + print(" }")
>
> condition_list = []
> for p in f.parameterIterateCounters():
> condition_list.append( "%s >= 0" % (p.name) )
> # 'counter' parameters cannot be negative
> - print " if (%s < 0) {" % p.name
> - print " __glXSetError(gc, GL_INVALID_VALUE);"
> + print(" if (%s < 0) {" % p.name)
> + print(" __glXSetError(gc, GL_INVALID_VALUE);")
> if f.return_type != 'void':
> - print " return 0;"
> + print(" return 0;")
> else:
> - print " return;"
> - print " }"
> + print(" return;")
> + print(" }")
>
> if skip_condition:
> condition_list.append( skip_condition )
> @@ -664,7 +666,7 @@ generic_%u_byte( GLint rop, const void * ptr )
> else:
> skip_condition = "%s" % (condition_list.pop(0))
>
> - print ' if (__builtin_expect(%s, 1)) {' % (skip_condition)
> + print(' if (__builtin_expect(%s, 1)) {' % (skip_condition))
> return 1
> else:
> return 0
> @@ -674,16 +676,16 @@ generic_%u_byte( GLint rop, const void * ptr )
> self.common_func_print_just_start(f, name)
>
> if self.debug:
> - print ' printf( "Enter %%s...\\n", "gl%s" );' % (f.name)
> + print(' printf( "Enter %%s...\\n", "gl%s" );' % (f.name))
>
> if name not in f.glx_vendorpriv_names:
>
> # XCB specific:
> - print '#ifdef USE_XCB'
> + print('#ifdef USE_XCB')
> if self.debug:
> - print ' printf("\\tUsing XCB.\\n");'
> - print ' xcb_connection_t *c = XGetXCBConnection(dpy);'
> - print ' (void) __glXFlushRenderBuffer(gc, gc->pc);'
> + print(' printf("\\tUsing XCB.\\n");')
> + print(' xcb_connection_t *c = XGetXCBConnection(dpy);')
> + print(' (void) __glXFlushRenderBuffer(gc, gc->pc);')
> xcb_name = 'xcb_glx%s' % convertStringForXCB(name)
>
> iparams=[]
> @@ -710,7 +712,7 @@ generic_%u_byte( GLint rop, const void * ptr )
> xcb_request = '%s(%s)' % (xcb_name, ", ".join(["c", "gc->currentContextTag"] + iparams + extra_iparams))
>
> if f.needs_reply():
> - print ' %s_reply_t *reply = %s_reply(c, %s, NULL);' % (xcb_name, xcb_name, xcb_request)
> + print(' %s_reply_t *reply = %s_reply(c, %s, NULL);' % (xcb_name, xcb_name, xcb_request))
> if output:
> if output.is_image():
> [dim, w, h, d, junk] = output.get_dimensions()
> @@ -721,30 +723,30 @@ generic_%u_byte( GLint rop, const void * ptr )
> if dim < 2:
> h = "1"
> else:
> - print ' if (%s == 0) { %s = 1; }' % (h, h)
> + print(' if (%s == 0) { %s = 1; }' % (h, h))
> if dim < 3:
> d = "1"
> else:
> - print ' if (%s == 0) { %s = 1; }' % (d, d)
> + print(' if (%s == 0) { %s = 1; }' % (d, d))
>
> - print ' __glEmptyImage(gc, 3, %s, %s, %s, %s, %s, %s_data(reply), %s);' % (w, h, d, output.img_format, output.img_type, xcb_name, output.name)
> + print(' __glEmptyImage(gc, 3, %s, %s, %s, %s, %s, %s_data(reply), %s);' % (w, h, d, output.img_format, output.img_type, xcb_name, output.name))
> else:
> if f.reply_always_array:
> - print ' (void)memcpy(%s, %s_data(reply), %s_data_length(reply) * sizeof(%s));' % (output.name, xcb_name, xcb_name, output.get_base_type_string())
> + print(' (void)memcpy(%s, %s_data(reply), %s_data_length(reply) * sizeof(%s));' % (output.name, xcb_name, xcb_name, output.get_base_type_string()))
> else:
> - print ' /* the XXX_data_length() xcb function name is misleading, it returns the number */'
> - print ' /* of elements, not the length of the data part. A single element is embedded. */'
> - print ' if (%s_data_length(reply) == 1)' % (xcb_name)
> - print ' (void)memcpy(%s, &reply->datum, sizeof(reply->datum));' % (output.name)
> - print ' else'
> - print ' (void)memcpy(%s, %s_data(reply), %s_data_length(reply) * sizeof(%s));' % (output.name, xcb_name, xcb_name, output.get_base_type_string())
> + print(' /* the XXX_data_length() xcb function name is misleading, it returns the number */')
> + print(' /* of elements, not the length of the data part. A single element is embedded. */')
> + print(' if (%s_data_length(reply) == 1)' % (xcb_name))
> + print(' (void)memcpy(%s, &reply->datum, sizeof(reply->datum));' % (output.name))
> + print(' else')
> + print(' (void)memcpy(%s, %s_data(reply), %s_data_length(reply) * sizeof(%s));' % (output.name, xcb_name, xcb_name, output.get_base_type_string()))
>
> if f.return_type != 'void':
> - print ' retval = reply->ret_val;'
> - print ' free(reply);'
> + print(' retval = reply->ret_val;')
> + print(' free(reply);')
> else:
> - print ' ' + xcb_request + ';'
> - print '#else'
> + print(' ' + xcb_request + ';')
> + print('#else')
> # End of XCB specific.
>
>
> @@ -754,9 +756,9 @@ generic_%u_byte( GLint rop, const void * ptr )
> pc_decl = "(void)"
>
> if name in f.glx_vendorpriv_names:
> - print ' %s __glXSetupVendorRequest(gc, %s, %s, cmdlen);' % (pc_decl, f.opcode_real_name(), f.opcode_vendor_name(name))
> + print(' %s __glXSetupVendorRequest(gc, %s, %s, cmdlen);' % (pc_decl, f.opcode_real_name(), f.opcode_vendor_name(name)))
> else:
> - print ' %s __glXSetupSingleRequest(gc, %s, cmdlen);' % (pc_decl, f.opcode_name())
> + print(' %s __glXSetupSingleRequest(gc, %s, cmdlen);' % (pc_decl, f.opcode_name()))
>
> self.common_emit_args(f, "pc", 0, 0)
>
> @@ -765,12 +767,12 @@ generic_%u_byte( GLint rop, const void * ptr )
> for img in images:
> if img.is_output:
> o = f.command_fixed_length() - 4
> - print ' *(int32_t *)(pc + %u) = 0;' % (o)
> + print(' *(int32_t *)(pc + %u) = 0;' % (o))
> if img.img_format != "GL_COLOR_INDEX" or img.img_type != "GL_BITMAP":
> - print ' * (int8_t *)(pc + %u) = state->storePack.swapEndian;' % (o)
> + print(' * (int8_t *)(pc + %u) = state->storePack.swapEndian;' % (o))
>
> if f.img_reset:
> - print ' * (int8_t *)(pc + %u) = %s;' % (o + 1, f.img_reset)
> + print(' * (int8_t *)(pc + %u) = %s;' % (o + 1, f.img_reset))
>
>
> return_name = ''
> @@ -787,9 +789,9 @@ generic_%u_byte( GLint rop, const void * ptr )
> if p.is_image():
> [dim, w, h, d, junk] = p.get_dimensions()
> if f.dimensions_in_reply:
> - print " __glXReadPixelReply(dpy, gc, %u, 0, 0, 0, %s, %s, %s, GL_TRUE);" % (dim, p.img_format, p.img_type, p.name)
> + print(" __glXReadPixelReply(dpy, gc, %u, 0, 0, 0, %s, %s, %s, GL_TRUE);" % (dim, p.img_format, p.img_type, p.name))
> else:
> - print " __glXReadPixelReply(dpy, gc, %u, %s, %s, %s, %s, %s, %s, GL_FALSE);" % (dim, w, h, d, p.img_format, p.img_type, p.name)
> + print(" __glXReadPixelReply(dpy, gc, %u, %s, %s, %s, %s, %s, %s, GL_FALSE);" % (dim, w, h, d, p.img_format, p.img_type, p.name))
>
> got_reply = 1
> else:
> @@ -809,7 +811,7 @@ generic_%u_byte( GLint rop, const void * ptr )
> # non-arrays) gives us this.
>
> s = p.size() / p.get_element_count()
> - print " %s __glXReadReply(dpy, %s, %s, %s);" % (return_str, s, p.name, aa)
> + print(" %s __glXReadReply(dpy, %s, %s, %s);" % (return_str, s, p.name, aa))
> got_reply = 1
>
>
> @@ -817,25 +819,25 @@ generic_%u_byte( GLint rop, const void * ptr )
> # read a NULL reply to get the return value.
>
> if not got_reply:
> - print " %s __glXReadReply(dpy, 0, NULL, GL_FALSE);" % (return_str)
> + print(" %s __glXReadReply(dpy, 0, NULL, GL_FALSE);" % (return_str))
>
>
> elif self.debug:
> # Only emit the extra glFinish call for functions
> # that don't already require a reply from the server.
> - print ' __indirect_glFinish();'
> + print(' __indirect_glFinish();')
>
> if self.debug:
> - print ' printf( "Exit %%s.\\n", "gl%s" );' % (name)
> + print(' printf( "Exit %%s.\\n", "gl%s" );' % (name))
>
>
> - print ' UnlockDisplay(dpy); SyncHandle();'
> + print(' UnlockDisplay(dpy); SyncHandle();')
>
> if name not in f.glx_vendorpriv_names:
> - print '#endif /* USE_XCB */'
> + print('#endif /* USE_XCB */')
>
> - print ' }'
> - print ' return%s;' % (return_name)
> + print(' }')
> + print(' return%s;' % (return_name))
> return
>
>
> @@ -859,7 +861,7 @@ generic_%u_byte( GLint rop, const void * ptr )
> if f.pad_after(param):
> p_string += ", 1"
>
> - print ' %s(%s, %u%s );' % (self.pixel_stubs[f.name] , f.opcode_name(), dim, p_string)
> + print(' %s(%s, %u%s );' % (self.pixel_stubs[f.name] , f.opcode_name(), dim, p_string))
> return
>
>
> @@ -870,32 +872,32 @@ generic_%u_byte( GLint rop, const void * ptr )
>
>
> if f.can_be_large:
> - print 'if (cmdlen <= gc->maxSmallRenderCommandSize) {'
> - print ' if ( (gc->pc + cmdlen) > gc->bufEnd ) {'
> - print ' (void) __glXFlushRenderBuffer(gc, gc->pc);'
> - print ' }'
> + print('if (cmdlen <= gc->maxSmallRenderCommandSize) {')
> + print(' if ( (gc->pc + cmdlen) > gc->bufEnd ) {')
> + print(' (void) __glXFlushRenderBuffer(gc, gc->pc);')
> + print(' }')
>
> if f.glx_rop == ~0:
> opcode = "opcode"
> else:
> opcode = f.opcode_real_name()
>
> - print 'emit_header(gc->pc, %s, cmdlen);' % (opcode)
> + print('emit_header(gc->pc, %s, cmdlen);' % (opcode))
>
> self.pixel_emit_args( f, "gc->pc", 0 )
> - print 'gc->pc += cmdlen;'
> - print 'if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); }'
> + print('gc->pc += cmdlen;')
> + print('if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); }')
>
> if f.can_be_large:
> - print '}'
> - print 'else {'
> + print('}')
> + print('else {')
>
> self.large_emit_begin(f, opcode)
> self.pixel_emit_args(f, "pc", 1)
>
> - print '}'
> + print('}')
>
> - if trailer: print trailer
> + if trailer: print(trailer)
> return
>
>
> @@ -912,7 +914,7 @@ generic_%u_byte( GLint rop, const void * ptr )
> if p.is_pointer():
> cmdlen = f.command_fixed_length()
> if cmdlen in self.generic_sizes:
> - print ' generic_%u_byte( %s, %s );' % (cmdlen, f.opcode_real_name(), p.name)
> + print(' generic_%u_byte( %s, %s );' % (cmdlen, f.opcode_real_name(), p.name))
> return
>
> if self.common_func_print_just_start(f, None):
> @@ -921,36 +923,36 @@ generic_%u_byte( GLint rop, const void * ptr )
> trailer = None
>
> if self.debug:
> - print 'printf( "Enter %%s...\\n", "gl%s" );' % (f.name)
> + print('printf( "Enter %%s...\\n", "gl%s" );' % (f.name))
>
> if f.can_be_large:
> - print 'if (cmdlen <= gc->maxSmallRenderCommandSize) {'
> - print ' if ( (gc->pc + cmdlen) > gc->bufEnd ) {'
> - print ' (void) __glXFlushRenderBuffer(gc, gc->pc);'
> - print ' }'
> + print('if (cmdlen <= gc->maxSmallRenderCommandSize) {')
> + print(' if ( (gc->pc + cmdlen) > gc->bufEnd ) {')
> + print(' (void) __glXFlushRenderBuffer(gc, gc->pc);')
> + print(' }')
>
> - print 'emit_header(gc->pc, %s, cmdlen);' % (f.opcode_real_name())
> + print('emit_header(gc->pc, %s, cmdlen);' % (f.opcode_real_name()))
>
> self.common_emit_args(f, "gc->pc", 4, 0)
> - print 'gc->pc += cmdlen;'
> - print 'if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); }'
> + print('gc->pc += cmdlen;')
> + print('if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); }')
>
> if f.can_be_large:
> - print '}'
> - print 'else {'
> + print('}')
> + print('else {')
>
> self.large_emit_begin(f)
> self.common_emit_args(f, "pc", 8, 1)
>
> p = f.variable_length_parameter()
> - print ' __glXSendLargeCommand(gc, pc, %u, %s, %s);' % (p.offset + 8, p.name, p.size_string())
> - print '}'
> + print(' __glXSendLargeCommand(gc, pc, %u, %s, %s);' % (p.offset + 8, p.name, p.size_string()))
> + print('}')
>
> if self.debug:
> - print '__indirect_glFinish();'
> - print 'printf( "Exit %%s.\\n", "gl%s" );' % (f.name)
> + print('__indirect_glFinish();')
> + print('printf( "Exit %%s.\\n", "gl%s" );' % (f.name))
>
> - if trailer: print trailer
> + if trailer: print(trailer)
> return
>
>
> @@ -966,7 +968,7 @@ class PrintGlxProtoInit_c(gl_XML.gl_print_base):
>
>
> def printRealHeader(self):
> - print """/**
> + print("""/**
> * \\file indirect_init.c
> * Initialize indirect rendering dispatch table.
> *
> @@ -1012,15 +1014,15 @@ struct _glapi_table * __glXNewIndirectAPI( void )
> table[i] = (_glapi_proc) NoOp;
> }
>
> - /* now, initialize the entries we understand */"""
> + /* now, initialize the entries we understand */""")
>
> def printRealFooter(self):
> - print """
> + print("""
> return (struct _glapi_table *) table;
> }
>
> #endif
> -"""
> +""")
> return
>
>
> @@ -1034,15 +1036,15 @@ struct _glapi_table * __glXNewIndirectAPI( void )
> for func in api.functionIterateByCategory(name):
> if func.client_supported_for_indirect():
> if preamble:
> - print preamble
> + print(preamble)
> preamble = None
>
> if func.is_abi():
> - print ' table[{offset}] = (_glapi_proc) __indirect_gl{name};'.format(name = func.name, offset = func.offset)
> + print(' table[{offset}] = (_glapi_proc) __indirect_gl{name};'.format(name = func.name, offset = func.offset))
> else:
> - print ' o = _glapi_get_proc_offset("gl{0}");'.format(func.name)
> - print ' assert(o > 0);'
> - print ' table[o] = (_glapi_proc) __indirect_gl{0};'.format(func.name)
> + print(' o = _glapi_get_proc_offset("gl{0}");'.format(func.name))
> + print(' assert(o > 0);')
> + print(' table[o] = (_glapi_proc) __indirect_gl{0};'.format(func.name))
>
> return
>
> @@ -1062,18 +1064,18 @@ class PrintGlxProtoInit_h(gl_XML.gl_print_base):
>
>
> def printRealHeader(self):
> - print """/**
> + print("""/**
> * \\file
> * Prototypes for indirect rendering functions.
> *
> * \\author Kevin E. Martin <kevin at precisioninsight.com>
> * \\author Ian Romanick <idr at us.ibm.com>
> */
> -"""
> +""")
> self.printFastcall()
> self.printNoinline()
>
> - print """
> + print("""
> #include <X11/Xfuncproto.h>
> #include "glxclient.h"
>
> @@ -1090,32 +1092,32 @@ extern _X_HIDDEN NOINLINE FASTCALL GLubyte * __glXSetupSingleRequest(
>
> extern _X_HIDDEN NOINLINE FASTCALL GLubyte * __glXSetupVendorRequest(
> struct glx_context * gc, GLint code, GLint vop, GLint cmdlen );
> -"""
> +""")
>
>
> def printBody(self, api):
> for func in api.functionIterateGlx():
> params = func.get_parameter_string()
>
> - print 'extern _X_HIDDEN %s __indirect_gl%s(%s);' % (func.return_type, func.name, params)
> + print('extern _X_HIDDEN %s __indirect_gl%s(%s);' % (func.return_type, func.name, params))
>
> for n in func.entry_points:
> if func.has_different_protocol(n):
> asdf = func.static_glx_name(n)
> if asdf not in func.static_entry_points:
> - print 'extern _X_HIDDEN %s gl%s(%s);' % (func.return_type, asdf, params)
> + print('extern _X_HIDDEN %s gl%s(%s);' % (func.return_type, asdf, params))
> # give it a easy-to-remember name
> if func.client_handcode:
> - print '#define gl_dispatch_stub_%s gl%s' % (n, asdf)
> + print('#define gl_dispatch_stub_%s gl%s' % (n, asdf))
> else:
> - print 'GLAPI %s GLAPIENTRY gl%s(%s);' % (func.return_type, asdf, params)
> + print('GLAPI %s GLAPIENTRY gl%s(%s);' % (func.return_type, asdf, params))
>
> break
>
> - print ''
> - print '#ifdef GLX_INDIRECT_RENDERING'
> - print 'extern _X_HIDDEN void (*__indirect_get_proc_address(const char *name))(void);'
> - print '#endif'
> + print('')
> + print('#ifdef GLX_INDIRECT_RENDERING')
> + print('extern _X_HIDDEN void (*__indirect_get_proc_address(const char *name))(void);')
> + print('#endif')
>
>
> def _parser():
> diff --git a/src/mapi/glapi/gen/glX_proto_size.py b/src/mapi/glapi/gen/glX_proto_size.py
> index 8dbb0af86d..2b7cefd235 100644
> --- a/src/mapi/glapi/gen/glX_proto_size.py
> +++ b/src/mapi/glapi/gen/glX_proto_size.py
> @@ -24,6 +24,8 @@
> # Authors:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> import argparse
> import sys, string
>
> @@ -167,19 +169,19 @@ class glx_enum_function(object):
> masked_count[i] = c
>
>
> - print ' static const GLushort a[%u] = {' % (mask + 1)
> + print(' static const GLushort a[%u] = {' % (mask + 1))
> for e in masked_enums:
> - print ' %s, ' % (masked_enums[e])
> - print ' };'
> + print(' %s, ' % (masked_enums[e]))
> + print(' };')
>
> - print ' static const GLubyte b[%u] = {' % (mask + 1)
> + print(' static const GLubyte b[%u] = {' % (mask + 1))
> for c in masked_count:
> - print ' %u, ' % (masked_count[c])
> - print ' };'
> + print(' %u, ' % (masked_count[c]))
> + print(' };')
>
> - print ' const unsigned idx = (e & 0x%02xU);' % (mask)
> - print ''
> - print ' return (e == a[idx]) ? (GLint) b[idx] : 0;'
> + print(' const unsigned idx = (e & 0x%02xU);' % (mask))
> + print('')
> + print(' return (e == a[idx]) ? (GLint) b[idx] : 0;')
> return 1;
> else:
> return 0;
> @@ -189,7 +191,7 @@ class glx_enum_function(object):
> """Emit the body of the __gl*_size function using a
> switch-statement."""
>
> - print ' switch( e ) {'
> + print(' switch( e ) {')
>
> for c in sorted(self.count):
> for e in self.count[c]:
> @@ -211,30 +213,30 @@ class glx_enum_function(object):
> for k in keys:
> j = list[k]
> if first:
> - print ' case GL_%s:' % (j)
> + print(' case GL_%s:' % (j))
> first = 0
> else:
> - print '/* case GL_%s:*/' % (j)
> + print('/* case GL_%s:*/' % (j))
>
> if c == -1:
> - print ' return __gl%s_variable_size( e );' % (name)
> + print(' return __gl%s_variable_size( e );' % (name))
> else:
> - print ' return %u;' % (c)
> + print(' return %u;' % (c))
>
> - print ' default: return 0;'
> - print ' }'
> + print(' default: return 0;')
> + print(' }')
>
>
> def Print(self, name):
> - print '_X_INTERNAL PURE FASTCALL GLint'
> - print '__gl%s_size( GLenum e )' % (name)
> - print '{'
> + print('_X_INTERNAL PURE FASTCALL GLint')
> + print('__gl%s_size( GLenum e )' % (name))
> + print('{')
>
> if not self.PrintUsingTable():
> self.PrintUsingSwitch(name)
>
> - print '}'
> - print ''
> + print('}')
> + print('')
>
>
> class glx_server_enum_function(glx_enum_function):
> @@ -282,18 +284,18 @@ class glx_server_enum_function(glx_enum_function):
> fixup.append( p.name )
>
>
> - print ' GLsizei compsize;'
> - print ''
> + print(' GLsizei compsize;')
> + print('')
>
> printer.common_emit_fixups(fixup)
>
> - print ''
> - print ' compsize = __gl%s_size(%s);' % (f.name, string.join(f.count_parameter_list, ","))
> + print('')
> + print(' compsize = __gl%s_size(%s);' % (f.name, string.join(f.count_parameter_list, ",")))
> p = f.variable_length_parameter()
> - print ' return safe_pad(%s);' % (p.size_string())
> + print(' return safe_pad(%s);' % (p.size_string()))
>
> - print '}'
> - print ''
> + print('}')
> + print('')
>
>
> class PrintGlxSizeStubs_common(gl_XML.gl_print_base):
> @@ -313,34 +315,34 @@ class PrintGlxSizeStubs_common(gl_XML.gl_print_base):
>
> class PrintGlxSizeStubs_c(PrintGlxSizeStubs_common):
> def printRealHeader(self):
> - print ''
> - print '#include <X11/Xfuncproto.h>'
> - print '#include <GL/gl.h>'
> + print('')
> + print('#include <X11/Xfuncproto.h>')
> + print('#include <GL/gl.h>')
> if self.emit_get:
> - print '#include "indirect_size_get.h"'
> - print '#include "glxserver.h"'
> - print '#include "indirect_util.h"'
> + print('#include "indirect_size_get.h"')
> + print('#include "glxserver.h"')
> + print('#include "indirect_util.h"')
>
> - print '#include "indirect_size.h"'
> + print('#include "indirect_size.h"')
>
> - print ''
> + print('')
> self.printPure()
> - print ''
> + print('')
> self.printFastcall()
> - print ''
> - print ''
> - print '#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS'
> - print '# define ALIAS2(from,to) \\'
> - print ' _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \\'
> - print ' __attribute__ ((alias( # to )));'
> - print '# define ALIAS(from,to) ALIAS2( from, __gl ## to ## _size )'
> - print '#else'
> - print '# define ALIAS(from,to) \\'
> - print ' _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \\'
> - print ' { return __gl ## to ## _size( e ); }'
> - print '#endif'
> - print ''
> - print ''
> + print('')
> + print('')
> + print('#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS')
> + print('# define ALIAS2(from,to) \\')
> + print(' _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \\')
> + print(' __attribute__ ((alias( # to )));')
> + print('# define ALIAS(from,to) ALIAS2( from, __gl ## to ## _size )')
> + print('#else')
> + print('# define ALIAS(from,to) \\')
> + print(' _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \\')
> + print(' { return __gl ## to ## _size( e ); }')
> + print('#endif')
> + print('')
> + print('')
>
>
> def printBody(self, api):
> @@ -362,26 +364,26 @@ class PrintGlxSizeStubs_c(PrintGlxSizeStubs_common):
>
>
> for [alias_name, real_name] in aliases:
> - print 'ALIAS( %s, %s )' % (alias_name, real_name)
> + print('ALIAS( %s, %s )' % (alias_name, real_name))
>
>
>
> class PrintGlxSizeStubs_h(PrintGlxSizeStubs_common):
> def printRealHeader(self):
> - print """/**
> + print("""/**
> * \\file
> * Prototypes for functions used to determine the number of data elements in
> * various GLX protocol messages.
> *
> * \\author Ian Romanick <idr at us.ibm.com>
> */
> -"""
> - print '#include <X11/Xfuncproto.h>'
> - print ''
> +""")
> + print('#include <X11/Xfuncproto.h>')
> + print('')
> self.printPure();
> - print ''
> + print('')
> self.printFastcall();
> - print ''
> + print('')
>
>
> def printBody(self, api):
> @@ -391,7 +393,7 @@ class PrintGlxSizeStubs_h(PrintGlxSizeStubs_common):
> continue
>
> if (ef.is_set() and self.emit_set) or (not ef.is_set() and self.emit_get):
> - print 'extern _X_INTERNAL PURE FASTCALL GLint __gl%s_size(GLenum);' % (func.name)
> + print('extern _X_INTERNAL PURE FASTCALL GLint __gl%s_size(GLenum);' % (func.name))
>
>
> class PrintGlxReqSize_common(gl_XML.gl_print_base):
> @@ -415,16 +417,16 @@ class PrintGlxReqSize_h(PrintGlxReqSize_common):
>
>
> def printRealHeader(self):
> - print '#include <X11/Xfuncproto.h>'
> - print ''
> + print('#include <X11/Xfuncproto.h>')
> + print('')
> self.printPure()
> - print ''
> + print('')
>
>
> def printBody(self, api):
> for func in api.functionIterateGlx():
> if not func.ignore and func.has_variable_size_request():
> - print 'extern PURE _X_HIDDEN int __glX%sReqSize(const GLbyte *pc, Bool swap, int reqlen);' % (func.name)
> + print('extern PURE _X_HIDDEN int __glX%sReqSize(const GLbyte *pc, Bool swap, int reqlen);' % (func.name))
>
>
> class PrintGlxReqSize_c(PrintGlxReqSize_common):
> @@ -441,25 +443,25 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
>
>
> def printRealHeader(self):
> - print ''
> - print '#include <GL/gl.h>'
> - print '#include "glxserver.h"'
> - print '#include "glxbyteorder.h"'
> - print '#include "indirect_size.h"'
> - print '#include "indirect_reqsize.h"'
> - print ''
> - print '#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS'
> - print '# define ALIAS2(from,to) \\'
> - print ' GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap, int reqlen ) \\'
> - print ' __attribute__ ((alias( # to )));'
> - print '# define ALIAS(from,to) ALIAS2( from, __glX ## to ## ReqSize )'
> - print '#else'
> - print '# define ALIAS(from,to) \\'
> - print ' GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap, int reqlen ) \\'
> - print ' { return __glX ## to ## ReqSize( pc, swap, reqlen ); }'
> - print '#endif'
> - print ''
> - print ''
> + print('')
> + print('#include <GL/gl.h>')
> + print('#include "glxserver.h"')
> + print('#include "glxbyteorder.h"')
> + print('#include "indirect_size.h"')
> + print('#include "indirect_reqsize.h"')
> + print('')
> + print('#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS')
> + print('# define ALIAS2(from,to) \\')
> + print(' GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap, int reqlen ) \\')
> + print(' __attribute__ ((alias( # to )));')
> + print('# define ALIAS(from,to) ALIAS2( from, __glX ## to ## ReqSize )')
> + print('#else')
> + print('# define ALIAS(from,to) \\')
> + print(' GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap, int reqlen ) \\')
> + print(' { return __glX ## to ## ReqSize( pc, swap, reqlen ); }')
> + print('#endif')
> + print('')
> + print('')
>
>
> def printBody(self, api):
> @@ -511,7 +513,7 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
>
>
> for [alias_name, real_name] in aliases:
> - print 'ALIAS( %s, %s )' % (alias_name, real_name)
> + print('ALIAS( %s, %s )' % (alias_name, real_name))
>
> return
>
> @@ -520,10 +522,10 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
> """Utility function to emit conditional byte-swaps."""
>
> if fixup:
> - print ' if (swap) {'
> + print(' if (swap) {')
> for name in fixup:
> - print ' %s = bswap_32(%s);' % (name, name)
> - print ' }'
> + print(' %s = bswap_32(%s);' % (name, name))
> + print(' }')
>
> return
>
> @@ -532,14 +534,14 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
> offset = p.offset
> dst = p.string()
> src = '(%s *)' % (p.type_string())
> - print '%-18s = *%11s(%s + %u);' % (dst, src, pc, offset + adjust);
> + print('%-18s = *%11s(%s + %u);' % (dst, src, pc, offset + adjust));
> return
>
>
> def common_func_print_just_header(self, f):
> - print 'int'
> - print '__glX%sReqSize( const GLbyte * pc, Bool swap, int reqlen )' % (f.name)
> - print '{'
> + print('int')
> + print('__glX%sReqSize( const GLbyte * pc, Bool swap, int reqlen )' % (f.name))
> + print('{')
>
>
> def printPixelFunction(self, f):
> @@ -548,20 +550,20 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
> f.offset_of( f.parameters[0].name )
> [dim, w, h, d, junk] = f.get_images()[0].get_dimensions()
>
> - print ' GLint row_length = * (GLint *)(pc + 4);'
> + print(' GLint row_length = * (GLint *)(pc + 4);')
>
> if dim < 3:
> fixup = ['row_length', 'skip_rows', 'alignment']
> - print ' GLint image_height = 0;'
> - print ' GLint skip_images = 0;'
> - print ' GLint skip_rows = * (GLint *)(pc + 8);'
> - print ' GLint alignment = * (GLint *)(pc + 16);'
> + print(' GLint image_height = 0;')
> + print(' GLint skip_images = 0;')
> + print(' GLint skip_rows = * (GLint *)(pc + 8);')
> + print(' GLint alignment = * (GLint *)(pc + 16);')
> else:
> fixup = ['row_length', 'image_height', 'skip_rows', 'skip_images', 'alignment']
> - print ' GLint image_height = * (GLint *)(pc + 8);'
> - print ' GLint skip_rows = * (GLint *)(pc + 16);'
> - print ' GLint skip_images = * (GLint *)(pc + 20);'
> - print ' GLint alignment = * (GLint *)(pc + 32);'
> + print(' GLint image_height = * (GLint *)(pc + 8);')
> + print(' GLint skip_rows = * (GLint *)(pc + 16);')
> + print(' GLint skip_images = * (GLint *)(pc + 20);')
> + print(' GLint alignment = * (GLint *)(pc + 32);')
>
> img = f.images[0]
> for p in f.parameterIterateGlxSend():
> @@ -569,21 +571,21 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
> self.common_emit_one_arg(p, "pc", 0)
> fixup.append( p.name )
>
> - print ''
> + print('')
>
> self.common_emit_fixups(fixup)
>
> if img.img_null_flag:
> - print ''
> - print ' if (*(CARD32 *) (pc + %s))' % (img.offset - 4)
> - print ' return 0;'
> -
> - print ''
> - print ' return __glXImageSize(%s, %s, %s, %s, %s, %s,' % (img.img_format, img.img_type, img.img_target, w, h, d )
> - print ' image_height, row_length, skip_images,'
> - print ' skip_rows, alignment);'
> - print '}'
> - print ''
> + print('')
> + print(' if (*(CARD32 *) (pc + %s))' % (img.offset - 4))
> + print(' return 0;')
> +
> + print('')
> + print(' return __glXImageSize(%s, %s, %s, %s, %s, %s,' % (img.img_format, img.img_type, img.img_target, w, h, d ))
> + print(' image_height, row_length, skip_images,')
> + print(' skip_rows, alignment);')
> + print('}')
> + print('')
> return
>
>
> @@ -632,13 +634,13 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
> self.common_emit_one_arg(p, "pc", 0)
>
>
> - print ''
> + print('')
> self.common_emit_fixups(fixup)
> - print ''
> + print('')
>
> - print ' return safe_pad(%s);' % (size)
> - print '}'
> - print ''
> + print(' return safe_pad(%s);' % (size))
> + print('}')
> + print('')
>
> return alias
>
> diff --git a/src/mapi/glapi/gen/gl_SPARC_asm.py b/src/mapi/glapi/gen/gl_SPARC_asm.py
> index 7b5714effd..0152958a8b 100644
> --- a/src/mapi/glapi/gen/gl_SPARC_asm.py
> +++ b/src/mapi/glapi/gen/gl_SPARC_asm.py
> @@ -24,6 +24,8 @@
> # Authors:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> import argparse
>
> import license
> @@ -39,192 +41,192 @@ class PrintGenericStubs(gl_XML.gl_print_base):
>
>
> def printRealHeader(self):
> - print '#ifdef __arch64__'
> - print '#define GL_OFF(N)\t((N) * 8)'
> - print '#define GL_LL\t\tldx'
> - print '#define GL_TIE_LD(SYM)\t%tie_ldx(SYM)'
> - print '#define GL_STACK_SIZE\t128'
> - print '#else'
> - print '#define GL_OFF(N)\t((N) * 4)'
> - print '#define GL_LL\t\tld'
> - print '#define GL_TIE_LD(SYM)\t%tie_ld(SYM)'
> - print '#define GL_STACK_SIZE\t64'
> - print '#endif'
> - print ''
> - print '#define GLOBL_FN(x) .globl x ; .type x, @function'
> - print '#define HIDDEN(x) .hidden x'
> - print ''
> - print '\t.register %g2, #scratch'
> - print '\t.register %g3, #scratch'
> - print ''
> - print '\t.text'
> - print ''
> - print '\tGLOBL_FN(__glapi_sparc_icache_flush)'
> - print '\tHIDDEN(__glapi_sparc_icache_flush)'
> - print '\t.type\t__glapi_sparc_icache_flush, @function'
> - print '__glapi_sparc_icache_flush: /* %o0 = insn_addr */'
> - print '\tflush\t%o0'
> - print '\tretl'
> - print '\t nop'
> - print ''
> - print '\t.align\t32'
> - print ''
> - print '\t.type\t__glapi_sparc_get_pc, @function'
> - print '__glapi_sparc_get_pc:'
> - print '\tretl'
> - print '\t add\t%o7, %g2, %g2'
> - print '\t.size\t__glapi_sparc_get_pc, .-__glapi_sparc_get_pc'
> - print ''
> - print '#ifdef GLX_USE_TLS'
> - print ''
> - print '\tGLOBL_FN(__glapi_sparc_get_dispatch)'
> - print '\tHIDDEN(__glapi_sparc_get_dispatch)'
> - print '__glapi_sparc_get_dispatch:'
> - print '\tmov\t%o7, %g1'
> - print '\tsethi\t%hi(_GLOBAL_OFFSET_TABLE_-4), %g2'
> - print '\tcall\t__glapi_sparc_get_pc'
> - print '\tadd\t%g2, %lo(_GLOBAL_OFFSET_TABLE_+4), %g2'
> - print '\tmov\t%g1, %o7'
> - print '\tsethi\t%tie_hi22(_glapi_tls_Dispatch), %g1'
> - print '\tadd\t%g1, %tie_lo10(_glapi_tls_Dispatch), %g1'
> - print '\tGL_LL\t[%g2 + %g1], %g2, GL_TIE_LD(_glapi_tls_Dispatch)'
> - print '\tretl'
> - print '\t mov\t%g2, %o0'
> - print ''
> - print '\t.data'
> - print '\t.align\t32'
> - print ''
> - print '\t/* --> sethi %hi(_glapi_tls_Dispatch), %g1 */'
> - print '\t/* --> or %g1, %lo(_glapi_tls_Dispatch), %g1 */'
> - print '\tGLOBL_FN(__glapi_sparc_tls_stub)'
> - print '\tHIDDEN(__glapi_sparc_tls_stub)'
> - print '__glapi_sparc_tls_stub: /* Call offset in %g3 */'
> - print '\tmov\t%o7, %g1'
> - print '\tsethi\t%hi(_GLOBAL_OFFSET_TABLE_-4), %g2'
> - print '\tcall\t__glapi_sparc_get_pc'
> - print '\tadd\t%g2, %lo(_GLOBAL_OFFSET_TABLE_+4), %g2'
> - print '\tmov\t%g1, %o7'
> - print '\tsrl\t%g3, 10, %g3'
> - print '\tsethi\t%tie_hi22(_glapi_tls_Dispatch), %g1'
> - print '\tadd\t%g1, %tie_lo10(_glapi_tls_Dispatch), %g1'
> - print '\tGL_LL\t[%g2 + %g1], %g2, GL_TIE_LD(_glapi_tls_Dispatch)'
> - print '\tGL_LL\t[%g7+%g2], %g1'
> - print '\tGL_LL\t[%g1 + %g3], %g1'
> - print '\tjmp\t%g1'
> - print '\t nop'
> - print '\t.size\t__glapi_sparc_tls_stub, .-__glapi_sparc_tls_stub'
> - print ''
> - print '#define GL_STUB(fn, off)\t\t\t\t\\'
> - print '\tGLOBL_FN(fn);\t\t\t\t\t\\'
> - print 'fn:\tba\t__glapi_sparc_tls_stub;\t\t\t\\'
> - print '\t sethi\tGL_OFF(off), %g3;\t\t\t\\'
> - print '\t.size\tfn,.-fn;'
> - print ''
> - print '#elif defined(HAVE_PTHREAD)'
> - print ''
> - print '\t/* 64-bit 0x00 --> sethi %hh(_glapi_Dispatch), %g1 */'
> - print '\t/* 64-bit 0x04 --> sethi %lm(_glapi_Dispatch), %g2 */'
> - print '\t/* 64-bit 0x08 --> or %g1, %hm(_glapi_Dispatch), %g1 */'
> - print '\t/* 64-bit 0x0c --> sllx %g1, 32, %g1 */'
> - print '\t/* 64-bit 0x10 --> add %g1, %g2, %g1 */'
> - print '\t/* 64-bit 0x14 --> ldx [%g1 + %lo(_glapi_Dispatch)], %g1 */'
> - print ''
> - print '\t/* 32-bit 0x00 --> sethi %hi(_glapi_Dispatch), %g1 */'
> - print '\t/* 32-bit 0x04 --> ld [%g1 + %lo(_glapi_Dispatch)], %g1 */'
> - print ''
> - print '\t.data'
> - print '\t.align\t32'
> - print ''
> - print '\tGLOBL_FN(__glapi_sparc_pthread_stub)'
> - print '\tHIDDEN(__glapi_sparc_pthread_stub)'
> - print '__glapi_sparc_pthread_stub: /* Call offset in %g3 */'
> - print '\tmov\t%o7, %g1'
> - print '\tsethi\t%hi(_GLOBAL_OFFSET_TABLE_-4), %g2'
> - print '\tcall\t__glapi_sparc_get_pc'
> - print '\t add\t%g2, %lo(_GLOBAL_OFFSET_TABLE_+4), %g2'
> - print '\tmov\t%g1, %o7'
> - print '\tsethi\t%hi(_glapi_Dispatch), %g1'
> - print '\tor\t%g1, %lo(_glapi_Dispatch), %g1'
> - print '\tsrl\t%g3, 10, %g3'
> - print '\tGL_LL\t[%g2+%g1], %g2'
> - print '\tGL_LL\t[%g2], %g1'
> - print '\tcmp\t%g1, 0'
> - print '\tbe\t2f'
> - print '\t nop'
> - print '1:\tGL_LL\t[%g1 + %g3], %g1'
> - print '\tjmp\t%g1'
> - print '\t nop'
> - print '2:\tsave\t%sp, GL_STACK_SIZE, %sp'
> - print '\tmov\t%g3, %l0'
> - print '\tcall\t_glapi_get_dispatch'
> - print '\t nop'
> - print '\tmov\t%o0, %g1'
> - print '\tmov\t%l0, %g3'
> - print '\tba\t1b'
> - print '\t restore %g0, %g0, %g0'
> - print '\t.size\t__glapi_sparc_pthread_stub, .-__glapi_sparc_pthread_stub'
> - print ''
> - print '#define GL_STUB(fn, off)\t\t\t\\'
> - print '\tGLOBL_FN(fn);\t\t\t\t\\'
> - print 'fn:\tba\t__glapi_sparc_pthread_stub;\t\\'
> - print '\t sethi\tGL_OFF(off), %g3;\t\t\\'
> - print '\t.size\tfn,.-fn;'
> - print ''
> - print '#else /* Non-threaded version. */'
> - print ''
> - print '\t.type __glapi_sparc_nothread_stub, @function'
> - print '__glapi_sparc_nothread_stub: /* Call offset in %g3 */'
> - print '\tmov\t%o7, %g1'
> - print '\tsethi\t%hi(_GLOBAL_OFFSET_TABLE_-4), %g2'
> - print '\tcall\t__glapi_sparc_get_pc'
> - print '\t add\t%g2, %lo(_GLOBAL_OFFSET_TABLE_+4), %g2'
> - print '\tmov\t%g1, %o7'
> - print '\tsrl\t%g3, 10, %g3'
> - print '\tsethi\t%hi(_glapi_Dispatch), %g1'
> - print '\tor\t%g1, %lo(_glapi_Dispatch), %g1'
> - print '\tGL_LL\t[%g2+%g1], %g2'
> - print '\tGL_LL\t[%g2], %g1'
> - print '\tGL_LL\t[%g1 + %g3], %g1'
> - print '\tjmp\t%g1'
> - print '\t nop'
> - print '\t.size\t__glapi_sparc_nothread_stub, .-__glapi_sparc_nothread_stub'
> - print ''
> - print '#define GL_STUB(fn, off)\t\t\t\\'
> - print '\tGLOBL_FN(fn);\t\t\t\t\\'
> - print 'fn:\tba\t__glapi_sparc_nothread_stub;\t\\'
> - print '\t sethi\tGL_OFF(off), %g3;\t\t\\'
> - print '\t.size\tfn,.-fn;'
> - print ''
> - print '#endif'
> - print ''
> - print '#define GL_STUB_ALIAS(fn, alias) \\'
> - print ' .globl fn; \\'
> - print ' .set fn, alias'
> - print ''
> - print '\t.text'
> - print '\t.align\t32'
> - print ''
> - print '\t.globl\tgl_dispatch_functions_start'
> - print '\tHIDDEN(gl_dispatch_functions_start)'
> - print 'gl_dispatch_functions_start:'
> - print ''
> + print('#ifdef __arch64__')
> + print('#define GL_OFF(N)\t((N) * 8)')
> + print('#define GL_LL\t\tldx')
> + print('#define GL_TIE_LD(SYM)\t%tie_ldx(SYM)')
> + print('#define GL_STACK_SIZE\t128')
> + print('#else')
> + print('#define GL_OFF(N)\t((N) * 4)')
> + print('#define GL_LL\t\tld')
> + print('#define GL_TIE_LD(SYM)\t%tie_ld(SYM)')
> + print('#define GL_STACK_SIZE\t64')
> + print('#endif')
> + print('')
> + print('#define GLOBL_FN(x) .globl x ; .type x, @function')
> + print('#define HIDDEN(x) .hidden x')
> + print('')
> + print('\t.register %g2, #scratch')
> + print('\t.register %g3, #scratch')
> + print('')
> + print('\t.text')
> + print('')
> + print('\tGLOBL_FN(__glapi_sparc_icache_flush)')
> + print('\tHIDDEN(__glapi_sparc_icache_flush)')
> + print('\t.type\t__glapi_sparc_icache_flush, @function')
> + print('__glapi_sparc_icache_flush: /* %o0 = insn_addr */')
> + print('\tflush\t%o0')
> + print('\tretl')
> + print('\t nop')
> + print('')
> + print('\t.align\t32')
> + print('')
> + print('\t.type\t__glapi_sparc_get_pc, @function')
> + print('__glapi_sparc_get_pc:')
> + print('\tretl')
> + print('\t add\t%o7, %g2, %g2')
> + print('\t.size\t__glapi_sparc_get_pc, .-__glapi_sparc_get_pc')
> + print('')
> + print('#ifdef GLX_USE_TLS')
> + print('')
> + print('\tGLOBL_FN(__glapi_sparc_get_dispatch)')
> + print('\tHIDDEN(__glapi_sparc_get_dispatch)')
> + print('__glapi_sparc_get_dispatch:')
> + print('\tmov\t%o7, %g1')
> + print('\tsethi\t%hi(_GLOBAL_OFFSET_TABLE_-4), %g2')
> + print('\tcall\t__glapi_sparc_get_pc')
> + print('\tadd\t%g2, %lo(_GLOBAL_OFFSET_TABLE_+4), %g2')
> + print('\tmov\t%g1, %o7')
> + print('\tsethi\t%tie_hi22(_glapi_tls_Dispatch), %g1')
> + print('\tadd\t%g1, %tie_lo10(_glapi_tls_Dispatch), %g1')
> + print('\tGL_LL\t[%g2 + %g1], %g2, GL_TIE_LD(_glapi_tls_Dispatch)')
> + print('\tretl')
> + print('\t mov\t%g2, %o0')
> + print('')
> + print('\t.data')
> + print('\t.align\t32')
> + print('')
> + print('\t/* --> sethi %hi(_glapi_tls_Dispatch), %g1 */')
> + print('\t/* --> or %g1, %lo(_glapi_tls_Dispatch), %g1 */')
> + print('\tGLOBL_FN(__glapi_sparc_tls_stub)')
> + print('\tHIDDEN(__glapi_sparc_tls_stub)')
> + print('__glapi_sparc_tls_stub: /* Call offset in %g3 */')
> + print('\tmov\t%o7, %g1')
> + print('\tsethi\t%hi(_GLOBAL_OFFSET_TABLE_-4), %g2')
> + print('\tcall\t__glapi_sparc_get_pc')
> + print('\tadd\t%g2, %lo(_GLOBAL_OFFSET_TABLE_+4), %g2')
> + print('\tmov\t%g1, %o7')
> + print('\tsrl\t%g3, 10, %g3')
> + print('\tsethi\t%tie_hi22(_glapi_tls_Dispatch), %g1')
> + print('\tadd\t%g1, %tie_lo10(_glapi_tls_Dispatch), %g1')
> + print('\tGL_LL\t[%g2 + %g1], %g2, GL_TIE_LD(_glapi_tls_Dispatch)')
> + print('\tGL_LL\t[%g7+%g2], %g1')
> + print('\tGL_LL\t[%g1 + %g3], %g1')
> + print('\tjmp\t%g1')
> + print('\t nop')
> + print('\t.size\t__glapi_sparc_tls_stub, .-__glapi_sparc_tls_stub')
> + print('')
> + print('#define GL_STUB(fn, off)\t\t\t\t\\')
> + print('\tGLOBL_FN(fn);\t\t\t\t\t\\')
> + print('fn:\tba\t__glapi_sparc_tls_stub;\t\t\t\\')
> + print('\t sethi\tGL_OFF(off), %g3;\t\t\t\\')
> + print('\t.size\tfn,.-fn;')
> + print('')
> + print('#elif defined(HAVE_PTHREAD)')
> + print('')
> + print('\t/* 64-bit 0x00 --> sethi %hh(_glapi_Dispatch), %g1 */')
> + print('\t/* 64-bit 0x04 --> sethi %lm(_glapi_Dispatch), %g2 */')
> + print('\t/* 64-bit 0x08 --> or %g1, %hm(_glapi_Dispatch), %g1 */')
> + print('\t/* 64-bit 0x0c --> sllx %g1, 32, %g1 */')
> + print('\t/* 64-bit 0x10 --> add %g1, %g2, %g1 */')
> + print('\t/* 64-bit 0x14 --> ldx [%g1 + %lo(_glapi_Dispatch)], %g1 */')
> + print('')
> + print('\t/* 32-bit 0x00 --> sethi %hi(_glapi_Dispatch), %g1 */')
> + print('\t/* 32-bit 0x04 --> ld [%g1 + %lo(_glapi_Dispatch)], %g1 */')
> + print('')
> + print('\t.data')
> + print('\t.align\t32')
> + print('')
> + print('\tGLOBL_FN(__glapi_sparc_pthread_stub)')
> + print('\tHIDDEN(__glapi_sparc_pthread_stub)')
> + print('__glapi_sparc_pthread_stub: /* Call offset in %g3 */')
> + print('\tmov\t%o7, %g1')
> + print('\tsethi\t%hi(_GLOBAL_OFFSET_TABLE_-4), %g2')
> + print('\tcall\t__glapi_sparc_get_pc')
> + print('\t add\t%g2, %lo(_GLOBAL_OFFSET_TABLE_+4), %g2')
> + print('\tmov\t%g1, %o7')
> + print('\tsethi\t%hi(_glapi_Dispatch), %g1')
> + print('\tor\t%g1, %lo(_glapi_Dispatch), %g1')
> + print('\tsrl\t%g3, 10, %g3')
> + print('\tGL_LL\t[%g2+%g1], %g2')
> + print('\tGL_LL\t[%g2], %g1')
> + print('\tcmp\t%g1, 0')
> + print('\tbe\t2f')
> + print('\t nop')
> + print('1:\tGL_LL\t[%g1 + %g3], %g1')
> + print('\tjmp\t%g1')
> + print('\t nop')
> + print('2:\tsave\t%sp, GL_STACK_SIZE, %sp')
> + print('\tmov\t%g3, %l0')
> + print('\tcall\t_glapi_get_dispatch')
> + print('\t nop')
> + print('\tmov\t%o0, %g1')
> + print('\tmov\t%l0, %g3')
> + print('\tba\t1b')
> + print('\t restore %g0, %g0, %g0')
> + print('\t.size\t__glapi_sparc_pthread_stub, .-__glapi_sparc_pthread_stub')
> + print('')
> + print('#define GL_STUB(fn, off)\t\t\t\\')
> + print('\tGLOBL_FN(fn);\t\t\t\t\\')
> + print('fn:\tba\t__glapi_sparc_pthread_stub;\t\\')
> + print('\t sethi\tGL_OFF(off), %g3;\t\t\\')
> + print('\t.size\tfn,.-fn;')
> + print('')
> + print('#else /* Non-threaded version. */')
> + print('')
> + print('\t.type __glapi_sparc_nothread_stub, @function')
> + print('__glapi_sparc_nothread_stub: /* Call offset in %g3 */')
> + print('\tmov\t%o7, %g1')
> + print('\tsethi\t%hi(_GLOBAL_OFFSET_TABLE_-4), %g2')
> + print('\tcall\t__glapi_sparc_get_pc')
> + print('\t add\t%g2, %lo(_GLOBAL_OFFSET_TABLE_+4), %g2')
> + print('\tmov\t%g1, %o7')
> + print('\tsrl\t%g3, 10, %g3')
> + print('\tsethi\t%hi(_glapi_Dispatch), %g1')
> + print('\tor\t%g1, %lo(_glapi_Dispatch), %g1')
> + print('\tGL_LL\t[%g2+%g1], %g2')
> + print('\tGL_LL\t[%g2], %g1')
> + print('\tGL_LL\t[%g1 + %g3], %g1')
> + print('\tjmp\t%g1')
> + print('\t nop')
> + print('\t.size\t__glapi_sparc_nothread_stub, .-__glapi_sparc_nothread_stub')
> + print('')
> + print('#define GL_STUB(fn, off)\t\t\t\\')
> + print('\tGLOBL_FN(fn);\t\t\t\t\\')
> + print('fn:\tba\t__glapi_sparc_nothread_stub;\t\\')
> + print('\t sethi\tGL_OFF(off), %g3;\t\t\\')
> + print('\t.size\tfn,.-fn;')
> + print('')
> + print('#endif')
> + print('')
> + print('#define GL_STUB_ALIAS(fn, alias) \\')
> + print(' .globl fn; \\')
> + print(' .set fn, alias')
> + print('')
> + print('\t.text')
> + print('\t.align\t32')
> + print('')
> + print('\t.globl\tgl_dispatch_functions_start')
> + print('\tHIDDEN(gl_dispatch_functions_start)')
> + print('gl_dispatch_functions_start:')
> + print('')
> return
>
> def printRealFooter(self):
> - print ''
> - print '\t.globl\tgl_dispatch_functions_end'
> - print '\tHIDDEN(gl_dispatch_functions_end)'
> - print 'gl_dispatch_functions_end:'
> + print('')
> + print('\t.globl\tgl_dispatch_functions_end')
> + print('\tHIDDEN(gl_dispatch_functions_end)')
> + print('gl_dispatch_functions_end:')
> return
>
> def printBody(self, api):
> for f in api.functionIterateByOffset():
> name = f.dispatch_name()
>
> - print '\tGL_STUB(gl%s, %d)' % (name, f.offset)
> + print('\tGL_STUB(gl%s, %d)' % (name, f.offset))
>
> if not f.is_static_entry_point(f.name):
> - print '\tHIDDEN(gl%s)' % (name)
> + print('\tHIDDEN(gl%s)' % (name))
>
> for f in api.functionIterateByOffset():
> name = f.dispatch_name()
> @@ -235,11 +237,11 @@ class PrintGenericStubs(gl_XML.gl_print_base):
> text = '\tGL_STUB_ALIAS(gl%s, gl%s)' % (n, f.name)
>
> if f.has_different_protocol(n):
> - print '#ifndef GLX_INDIRECT_RENDERING'
> - print text
> - print '#endif'
> + print('#ifndef GLX_INDIRECT_RENDERING')
> + print(text)
> + print('#endif')
> else:
> - print text
> + print(text)
>
> return
>
> diff --git a/src/mapi/glapi/gen/gl_XML.py b/src/mapi/glapi/gen/gl_XML.py
> index 1bab5fee51..3a191abe0d 100644
> --- a/src/mapi/glapi/gen/gl_XML.py
> +++ b/src/mapi/glapi/gen/gl_XML.py
> @@ -24,6 +24,8 @@
> # Authors:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> from collections import OrderedDict
> from decimal import Decimal
> import xml.etree.ElementTree as ET
> @@ -126,17 +128,17 @@ class gl_print_base(object):
> def printHeader(self):
> """Print the header associated with all files and call the printRealHeader method."""
>
> - print '/* DO NOT EDIT - This file generated automatically by %s script */' \
> - % (self.name)
> - print ''
> - print '/*'
> - print (' * ' + self.license.replace('\n', '\n * ')).replace(' \n', '\n')
> - print ' */'
> - print ''
> + print('/* DO NOT EDIT - This file generated automatically by %s script */' \
> + % (self.name))
> + print('')
> + print('/*')
> + print((' * ' + self.license.replace('\n', '\n * ')).replace(' \n', '\n'))
> + print(' */')
> + print('')
> if self.header_tag:
> - print '#if !defined( %s )' % (self.header_tag)
> - print '# define %s' % (self.header_tag)
> - print ''
> + print('#if !defined( %s )' % (self.header_tag))
> + print('# define %s' % (self.header_tag))
> + print('')
> self.printRealHeader();
> return
>
> @@ -147,13 +149,13 @@ class gl_print_base(object):
> self.printRealFooter()
>
> if self.undef_list:
> - print ''
> + print('')
> for u in self.undef_list:
> - print "# undef %s" % (u)
> + print("# undef %s" % (u))
>
> if self.header_tag:
> - print ''
> - print '#endif /* !defined( %s ) */' % (self.header_tag)
> + print('')
> + print('#endif /* !defined( %s ) */' % (self.header_tag))
>
>
> def printRealHeader(self):
> @@ -183,11 +185,11 @@ class gl_print_base(object):
> The name is also added to the file's undef_list.
> """
> self.undef_list.append("PURE")
> - print """# if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
> + print("""# if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
> # define PURE __attribute__((pure))
> # else
> # define PURE
> -# endif"""
> +# endif""")
> return
>
>
> @@ -203,11 +205,11 @@ class gl_print_base(object):
> """
>
> self.undef_list.append("FASTCALL")
> - print """# if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
> + print("""# if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
> # define FASTCALL __attribute__((fastcall))
> # else
> # define FASTCALL
> -# endif"""
> +# endif""")
> return
>
>
> @@ -223,11 +225,11 @@ class gl_print_base(object):
> """
>
> self.undef_list.append(S)
> - print """# if defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
> + print("""# if defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
> # define %s __attribute__((visibility("%s")))
> # else
> # define %s
> -# endif""" % (S, s, S)
> +# endif""" % (S, s, S))
> return
>
>
> @@ -243,11 +245,11 @@ class gl_print_base(object):
> """
>
> self.undef_list.append("NOINLINE")
> - print """# if defined(__GNUC__)
> + print("""# if defined(__GNUC__)
> # define NOINLINE __attribute__((noinline))
> # else
> # define NOINLINE
> -# endif"""
> +# endif""")
> return
>
>
> @@ -1069,5 +1071,5 @@ class gl_api(object):
> if type_name in self.types_by_name:
> return self.types_by_name[ type_name ].type_expr
> else:
> - print "Unable to find base type matching \"%s\"." % (type_name)
> + print("Unable to find base type matching \"%s\"." % (type_name))
> return None
> diff --git a/src/mapi/glapi/gen/gl_apitemp.py b/src/mapi/glapi/gen/gl_apitemp.py
> index a8e5d81455..d0583f48ef 100644
> --- a/src/mapi/glapi/gen/gl_apitemp.py
> +++ b/src/mapi/glapi/gen/gl_apitemp.py
> @@ -24,6 +24,8 @@
> # Authors:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> import argparse
>
> import gl_XML, glX_XML
> @@ -97,27 +99,27 @@ class PrintGlOffsets(gl_XML.gl_print_base):
> if (cat.startswith("es") or cat.startswith("GL_OES")):
> need_proto = True
> if need_proto:
> - print '%s %s KEYWORD2 NAME(%s)(%s);' % (keyword, f.return_type, n, f.get_parameter_string(name))
> - print ''
> + print('%s %s KEYWORD2 NAME(%s)(%s);' % (keyword, f.return_type, n, f.get_parameter_string(name)))
> + print('')
>
> - print '%s %s KEYWORD2 NAME(%s)(%s)' % (keyword, f.return_type, n, f.get_parameter_string(name))
> - print '{'
> + print('%s %s KEYWORD2 NAME(%s)(%s)' % (keyword, f.return_type, n, f.get_parameter_string(name)))
> + print('{')
> if silence:
> - print ' %s' % (silence)
> + print(' %s' % (silence))
> if p_string == "":
> - print ' %s(%s, (), (F, "gl%s();\\n"));' \
> - % (dispatch, f.name, name)
> + print(' %s(%s, (), (F, "gl%s();\\n"));' \
> + % (dispatch, f.name, name))
> else:
> - print ' %s(%s, (%s), (F, "gl%s(%s);\\n", %s));' \
> - % (dispatch, f.name, p_string, name, t_string, o_string)
> - print '}'
> - print ''
> + print(' %s(%s, (%s), (F, "gl%s(%s);\\n", %s));' \
> + % (dispatch, f.name, p_string, name, t_string, o_string))
> + print('}')
> + print('')
> return
>
> def printRealHeader(self):
> - print ''
> + print('')
> self.printVisibility( "HIDDEN", "hidden" )
> - print """
> + print("""
> /*
> * This file is a template which generates the OpenGL API entry point
> * functions. It should be included by a .c file which first defines
> @@ -164,13 +166,13 @@ class PrintGlOffsets(gl_XML.gl_print_base):
> #error RETURN_DISPATCH must be defined
> #endif
>
> -"""
> +""")
> return
>
>
>
> def printInitDispatch(self, api):
> - print """
> + print("""
> #endif /* defined( NAME ) */
>
> /*
> @@ -187,31 +189,31 @@ class PrintGlOffsets(gl_XML.gl_print_base):
> #error _GLAPI_SKIP_NORMAL_ENTRY_POINTS must not be defined
> #endif
>
> -_glapi_proc DISPATCH_TABLE_NAME[] = {"""
> +_glapi_proc DISPATCH_TABLE_NAME[] = {""")
> for f in api.functionIterateByOffset():
> - print ' TABLE_ENTRY(%s),' % (f.dispatch_name())
> + print(' TABLE_ENTRY(%s),' % (f.dispatch_name()))
>
> - print ' /* A whole bunch of no-op functions. These might be called'
> - print ' * when someone tries to call a dynamically-registered'
> - print ' * extension function without a current rendering context.'
> - print ' */'
> + print(' /* A whole bunch of no-op functions. These might be called')
> + print(' * when someone tries to call a dynamically-registered')
> + print(' * extension function without a current rendering context.')
> + print(' */')
> for i in range(1, 100):
> - print ' TABLE_ENTRY(Unused),'
> + print(' TABLE_ENTRY(Unused),')
>
> - print '};'
> - print '#endif /* DISPATCH_TABLE_NAME */'
> - print ''
> + print('};')
> + print('#endif /* DISPATCH_TABLE_NAME */')
> + print('')
> return
>
>
> def printAliasedTable(self, api):
> - print """
> + print("""
> /*
> * This is just used to silence compiler warnings.
> * We list the functions which are not otherwise used.
> */
> #ifdef UNUSED_TABLE_NAME
> -_glapi_proc UNUSED_TABLE_NAME[] = {"""
> +_glapi_proc UNUSED_TABLE_NAME[] = {""")
>
> normal_entries = []
> proto_entries = []
> @@ -230,18 +232,18 @@ _glapi_proc UNUSED_TABLE_NAME[] = {"""
> normal_entries.extend(normal_ents)
> proto_entries.extend(proto_ents)
>
> - print '#ifndef _GLAPI_SKIP_NORMAL_ENTRY_POINTS'
> + print('#ifndef _GLAPI_SKIP_NORMAL_ENTRY_POINTS')
> for ent in normal_entries:
> - print ' TABLE_ENTRY(%s),' % (ent)
> - print '#endif /* _GLAPI_SKIP_NORMAL_ENTRY_POINTS */'
> - print '#ifndef _GLAPI_SKIP_PROTO_ENTRY_POINTS'
> + print(' TABLE_ENTRY(%s),' % (ent))
> + print('#endif /* _GLAPI_SKIP_NORMAL_ENTRY_POINTS */')
> + print('#ifndef _GLAPI_SKIP_PROTO_ENTRY_POINTS')
> for ent in proto_entries:
> - print ' TABLE_ENTRY(%s),' % (ent)
> - print '#endif /* _GLAPI_SKIP_PROTO_ENTRY_POINTS */'
> + print(' TABLE_ENTRY(%s),' % (ent))
> + print('#endif /* _GLAPI_SKIP_PROTO_ENTRY_POINTS */')
>
> - print '};'
> - print '#endif /*UNUSED_TABLE_NAME*/'
> - print ''
> + print('};')
> + print('#endif /*UNUSED_TABLE_NAME*/')
> + print('')
> return
>
>
> @@ -278,23 +280,23 @@ _glapi_proc UNUSED_TABLE_NAME[] = {"""
> normal_entry_points.append((func, normal_ents))
> proto_entry_points.append((func, proto_ents))
>
> - print '#ifndef _GLAPI_SKIP_NORMAL_ENTRY_POINTS'
> - print ''
> + print('#ifndef _GLAPI_SKIP_NORMAL_ENTRY_POINTS')
> + print('')
> for func, ents in normal_entry_points:
> for ent in ents:
> self.printFunction(func, ent)
> - print ''
> - print '#endif /* _GLAPI_SKIP_NORMAL_ENTRY_POINTS */'
> - print ''
> - print '/* these entry points might require different protocols */'
> - print '#ifndef _GLAPI_SKIP_PROTO_ENTRY_POINTS'
> - print ''
> + print('')
> + print('#endif /* _GLAPI_SKIP_NORMAL_ENTRY_POINTS */')
> + print('')
> + print('/* these entry points might require different protocols */')
> + print('#ifndef _GLAPI_SKIP_PROTO_ENTRY_POINTS')
> + print('')
> for func, ents in proto_entry_points:
> for ent in ents:
> self.printFunction(func, ent)
> - print ''
> - print '#endif /* _GLAPI_SKIP_PROTO_ENTRY_POINTS */'
> - print ''
> + print('')
> + print('#endif /* _GLAPI_SKIP_PROTO_ENTRY_POINTS */')
> + print('')
>
> self.printInitDispatch(api)
> self.printAliasedTable(api)
> diff --git a/src/mapi/glapi/gen/gl_enums.py b/src/mapi/glapi/gen/gl_enums.py
> index 768a54a3a6..00f8134bae 100644
> --- a/src/mapi/glapi/gen/gl_enums.py
> +++ b/src/mapi/glapi/gen/gl_enums.py
> @@ -25,6 +25,8 @@
> # Authors:
> # Zack Rusin <zack at kde.org>
>
> +from __future__ import print_function
> +
> import argparse
>
> import license
> @@ -48,20 +50,20 @@ class PrintGlEnums(gl_XML.gl_print_base):
>
>
> def printRealHeader(self):
> - print '#include "main/glheader.h"'
> - print '#include "main/enums.h"'
> - print '#include "main/imports.h"'
> - print '#include "main/mtypes.h"'
> - print ''
> - print 'typedef struct PACKED {'
> - print ' uint32_t offset;'
> - print ' int n;'
> - print '} enum_elt;'
> - print ''
> + print('#include "main/glheader.h"')
> + print('#include "main/enums.h"')
> + print('#include "main/imports.h"')
> + print('#include "main/mtypes.h"')
> + print('')
> + print('typedef struct PACKED {')
> + print(' uint32_t offset;')
> + print(' int n;')
> + print('} enum_elt;')
> + print('')
> return
>
> def print_code(self):
> - print """
> + print("""
> typedef int (*cfunc)(const void *, const void *);
>
> /**
> @@ -144,7 +146,7 @@ _mesa_lookup_prim_by_nr(GLuint nr)
> }
>
>
> -"""
> +""")
> return
>
>
> @@ -154,37 +156,37 @@ _mesa_lookup_prim_by_nr(GLuint nr)
> sorted_enum_values = sorted(self.enum_table.keys())
> string_offsets = {}
> i = 0;
> - print '#if defined(__GNUC__)'
> - print '# define LONGSTRING __extension__'
> - print '#else'
> - print '# define LONGSTRING'
> - print '#endif'
> - print ''
> - print 'LONGSTRING static const char enum_string_table[] = {'
> + print('#if defined(__GNUC__)')
> + print('# define LONGSTRING __extension__')
> + print('#else')
> + print('# define LONGSTRING')
> + print('#endif')
> + print('')
> + print('LONGSTRING static const char enum_string_table[] = {')
> # We express the very long concatenation of enum strings as an array
> # of characters rather than as a string literal to work-around MSVC's
> # 65535 character limit.
> for enum in sorted_enum_values:
> (name, pri) = self.enum_table[enum]
> - print " ",
> + print(" ", end=' ')
> for ch in name:
> - print "'%c'," % ch,
> - print "'\\0',"
> + print("'%c'," % ch, end=' ')
> + print("'\\0',")
>
> string_offsets[ enum ] = i
> i += len(name) + 1
>
> - print '};'
> - print ''
> + print('};')
> + print('')
>
>
> - print 'static const enum_elt enum_string_table_offsets[%u] =' % (len(self.enum_table))
> - print '{'
> + print('static const enum_elt enum_string_table_offsets[%u] =' % (len(self.enum_table)))
> + print('{')
> for enum in sorted_enum_values:
> (name, pri) = self.enum_table[enum]
> - print ' { %5u, 0x%08X }, /* %s */' % (string_offsets[enum], enum, name)
> - print '};'
> - print ''
> + print(' { %5u, 0x%08X }, /* %s */' % (string_offsets[enum], enum, name))
> + print('};')
> + print('')
>
> self.print_code()
> return
> @@ -240,7 +242,7 @@ _mesa_lookup_prim_by_nr(GLuint nr)
> # confuse us. GL_ACTIVE_PROGRAM_EXT is OK to lose because
> # we choose GL_ACTIVE PROGRAM instead.
> if name in self.string_to_int and name != "GL_ACTIVE_PROGRAM_EXT":
> - print "#error Renumbering {0} from {1} to {2}".format(name, self.string_to_int[name], value)
> + print("#error Renumbering {0} from {1} to {2}".format(name, self.string_to_int[name], value))
>
> self.string_to_int[name] = value
>
> diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py
> index be8013b62b..fc5b10a4b3 100644
> --- a/src/mapi/glapi/gen/gl_genexec.py
> +++ b/src/mapi/glapi/gen/gl_genexec.py
> @@ -24,6 +24,8 @@
> # _mesa_initialize_exec_table(). It is responsible for populating all
> # entries in the "exec" dispatch table that aren't dynamic.
>
> +from __future__ import print_function
> +
> import argparse
> import collections
> import license
> @@ -170,10 +172,10 @@ class PrintCode(gl_XML.gl_print_base):
> 'Intel Corporation')
>
> def printRealHeader(self):
> - print header
> + print(header)
>
> def printRealFooter(self):
> - print footer
> + print(footer)
>
> def printBody(self, api):
> # Collect SET_* calls by the condition under which they should
> @@ -249,10 +251,10 @@ class PrintCode(gl_XML.gl_print_base):
> # Print out an if statement for each unique condition, with
> # the SET_* calls nested inside it.
> for condition in sorted(settings_by_condition.keys()):
> - print ' if ({0}) {{'.format(condition)
> + print(' if ({0}) {{'.format(condition))
> for setting in sorted(settings_by_condition[condition]):
> - print ' {0}'.format(setting)
> - print ' }'
> + print(' {0}'.format(setting))
> + print(' }')
>
>
> def _parser():
> diff --git a/src/mapi/glapi/gen/gl_gentable.py b/src/mapi/glapi/gen/gl_gentable.py
> index 50153bbabd..73fa6c6daa 100644
> --- a/src/mapi/glapi/gen/gl_gentable.py
> +++ b/src/mapi/glapi/gen/gl_gentable.py
> @@ -29,6 +29,8 @@
> # Based on code ogiginally by:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> import argparse
>
> import license
> @@ -187,12 +189,12 @@ class PrintCode(gl_XML.gl_print_base):
>
>
> def printRealHeader(self):
> - print header
> + print(header)
> return
>
>
> def printRealFooter(self):
> - print footer
> + print(footer)
> return
>
>
> @@ -218,11 +220,11 @@ class PrintCode(gl_XML.gl_print_base):
> if funcnames[i] is None:
> raise Exception("Function table has no function at offset %d" % (i))
>
> - print "#define GLAPI_TABLE_COUNT %d" % func_count
> - print "static const char * const _glapi_table_func_names[GLAPI_TABLE_COUNT] = {"
> + print("#define GLAPI_TABLE_COUNT %d" % func_count)
> + print("static const char * const _glapi_table_func_names[GLAPI_TABLE_COUNT] = {")
> for i in xrange(0, func_count):
> - print " /* %5d */ \"%s\"," % (i, funcnames[i])
> - print "};"
> + print(" /* %5d */ \"%s\"," % (i, funcnames[i]))
> + print("};")
>
> return
>
> diff --git a/src/mapi/glapi/gen/gl_marshal.py b/src/mapi/glapi/gen/gl_marshal.py
> index 6a2c0d7b31..e9dd2c4f78 100644
> --- a/src/mapi/glapi/gen/gl_marshal.py
> +++ b/src/mapi/glapi/gen/gl_marshal.py
> @@ -20,6 +20,8 @@
> # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> # IN THE SOFTWARE.
>
> +from __future__ import print_function
> +
> import contextlib
> import getopt
> import gl_XML
> @@ -42,9 +44,9 @@ current_indent = 0
>
> def out(str):
> if str:
> - print ' '*current_indent + str
> + print(' '*current_indent + str)
> else:
> - print ''
> + print('')
>
>
> @contextlib.contextmanager
> @@ -64,15 +66,15 @@ class PrintCode(gl_XML.gl_print_base):
> 'Copyright (C) 2012 Intel Corporation', 'INTEL CORPORATION')
>
> def printRealHeader(self):
> - print header
> - print 'static inline int safe_mul(int a, int b)'
> - print '{'
> - print ' if (a < 0 || b < 0) return -1;'
> - print ' if (a == 0 || b == 0) return 0;'
> - print ' if (a > INT_MAX / b) return -1;'
> - print ' return a * b;'
> - print '}'
> - print
> + print(header)
> + print('static inline int safe_mul(int a, int b)')
> + print('{')
> + print(' if (a < 0 || b < 0) return -1;')
> + print(' if (a == 0 || b == 0) return 0;')
> + print(' if (a > INT_MAX / b) return -1;')
> + print(' return a * b;')
> + print('}')
> + print()
>
> def printRealFooter(self):
> pass
> @@ -342,7 +344,7 @@ class PrintCode(gl_XML.gl_print_base):
>
>
> def show_usage():
> - print 'Usage: %s [-f input_file_name]' % sys.argv[0]
> + print('Usage: %s [-f input_file_name]' % sys.argv[0])
> sys.exit(1)
>
>
> diff --git a/src/mapi/glapi/gen/gl_marshal_h.py b/src/mapi/glapi/gen/gl_marshal_h.py
> index 998ca5930d..6490595a00 100644
> --- a/src/mapi/glapi/gen/gl_marshal_h.py
> +++ b/src/mapi/glapi/gen/gl_marshal_h.py
> @@ -20,6 +20,8 @@
> # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> # IN THE SOFTWARE.
>
> +from __future__ import print_function
> +
> import getopt
> import gl_XML
> import license
> @@ -46,24 +48,24 @@ class PrintCode(gl_XML.gl_print_base):
> 'Copyright (C) 2012 Intel Corporation', 'INTEL CORPORATION')
>
> def printRealHeader(self):
> - print header
> + print(header)
>
> def printRealFooter(self):
> - print footer
> + print(footer)
>
> def printBody(self, api):
> - print 'enum marshal_dispatch_cmd_id'
> - print '{'
> + print('enum marshal_dispatch_cmd_id')
> + print('{')
> for func in api.functionIterateAll():
> flavor = func.marshal_flavor()
> if flavor in ('skip', 'sync'):
> continue
> - print ' DISPATCH_CMD_{0},'.format(func.name)
> - print '};'
> + print(' DISPATCH_CMD_{0},'.format(func.name))
> + print('};')
>
>
> def show_usage():
> - print 'Usage: %s [-f input_file_name]' % sys.argv[0]
> + print('Usage: %s [-f input_file_name]' % sys.argv[0])
> sys.exit(1)
>
>
> diff --git a/src/mapi/glapi/gen/gl_procs.py b/src/mapi/glapi/gen/gl_procs.py
> index d9ea1ab074..a7bc909ce2 100644
> --- a/src/mapi/glapi/gen/gl_procs.py
> +++ b/src/mapi/glapi/gen/gl_procs.py
> @@ -24,6 +24,8 @@
> # Authors:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> import argparse
>
> import license
> @@ -42,7 +44,7 @@ class PrintGlProcs(gl_XML.gl_print_base):
> (C) Copyright IBM Corporation 2004, 2006""", "BRIAN PAUL, IBM")
>
> def printRealHeader(self):
> - print """
> + print("""
> /* This file is only included by glapi.c and is used for
> * the GetProcAddress() function
> */
> @@ -65,20 +67,20 @@ typedef struct {
> # define NAME_FUNC_OFFSET(n,f1,f2,f3,o) { n , (_glapi_proc) f3 , o }
> #endif
>
> -"""
> +""")
> return
>
> def printRealFooter(self):
> - print ''
> - print '#undef NAME_FUNC_OFFSET'
> + print('')
> + print('#undef NAME_FUNC_OFFSET')
> return
>
> def printFunctionString(self, name):
> - print ' "gl%s\\0"' % (name)
> + print(' "gl%s\\0"' % (name))
>
> def printBody(self, api):
> - print ''
> - print 'static const char gl_string_table[] ='
> + print('')
> + print('static const char gl_string_table[] =')
>
> base_offset = 0
> table = []
> @@ -108,23 +110,23 @@ typedef struct {
> base_offset += len(n) + 3
>
>
> - print ' ;'
> - print ''
> - print ''
> - print "#ifdef USE_MGL_NAMESPACE"
> + print(' ;')
> + print('')
> + print('')
> + print("#ifdef USE_MGL_NAMESPACE")
> for func in api.functionIterateByOffset():
> for n in func.entry_points:
> if (not func.is_static_entry_point(func.name)) or (func.has_different_protocol(n) and not func.is_static_entry_point(n)):
> - print '#define gl_dispatch_stub_%u mgl_dispatch_stub_%u' % (func.offset, func.offset)
> + print('#define gl_dispatch_stub_%u mgl_dispatch_stub_%u' % (func.offset, func.offset))
> break
> - print "#endif /* USE_MGL_NAMESPACE */"
> - print ''
> - print ''
> - print '#if defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING)'
> + print("#endif /* USE_MGL_NAMESPACE */")
> + print('')
> + print('')
> + print('#if defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING)')
> for func in api.functionIterateByOffset():
> for n in func.entry_points:
> if (not func.is_static_entry_point(func.name)) or (func.has_different_protocol(n) and not func.is_static_entry_point(n)):
> - print '%s GLAPIENTRY gl_dispatch_stub_%u(%s);' % (func.return_type, func.offset, func.get_parameter_string())
> + print('%s GLAPIENTRY gl_dispatch_stub_%u(%s);' % (func.return_type, func.offset, func.get_parameter_string()))
> break
>
> if self.es:
> @@ -139,26 +141,26 @@ typedef struct {
> % (func.return_type, "gl" + n, func.get_parameter_string(n))
> categories[cat].append(proto)
> if categories:
> - print ''
> - print '/* OpenGL ES specific prototypes */'
> - print ''
> + print('')
> + print('/* OpenGL ES specific prototypes */')
> + print('')
> keys = categories.keys()
> keys.sort()
> for key in keys:
> - print '/* category %s */' % key
> - print "\n".join(categories[key])
> - print ''
> + print('/* category %s */' % key)
> + print("\n".join(categories[key]))
> + print('')
>
> - print '#endif /* defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING) */'
> + print('#endif /* defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING) */')
>
> - print ''
> - print 'static const glprocs_table_t static_functions[] = {'
> + print('')
> + print('static const glprocs_table_t static_functions[] = {')
>
> for info in table:
> - print ' NAME_FUNC_OFFSET(%5u, %s, %s, %s, %d),' % info
> + print(' NAME_FUNC_OFFSET(%5u, %s, %s, %s, %d),' % info)
>
> - print ' NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0)'
> - print '};'
> + print(' NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0)')
> + print('};')
> return
>
>
> diff --git a/src/mapi/glapi/gen/gl_table.py b/src/mapi/glapi/gen/gl_table.py
> index 579efa80e1..4b89ef8a85 100644
> --- a/src/mapi/glapi/gen/gl_table.py
> +++ b/src/mapi/glapi/gen/gl_table.py
> @@ -25,6 +25,8 @@
> # Authors:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> import argparse
>
> import gl_XML
> @@ -45,33 +47,33 @@ class PrintGlTable(gl_XML.gl_print_base):
> def printBody(self, api):
> for f in api.functionIterateByOffset():
> arg_string = f.get_parameter_string()
> - print ' %s (GLAPIENTRYP %s)(%s); /* %d */' % (
> - f.return_type, f.name, arg_string, f.offset)
> + print(' %s (GLAPIENTRYP %s)(%s); /* %d */' % (
> + f.return_type, f.name, arg_string, f.offset))
>
> def printRealHeader(self):
> - print '#ifndef GLAPIENTRYP'
> - print '# ifndef GLAPIENTRY'
> - print '# define GLAPIENTRY'
> - print '# endif'
> - print ''
> - print '# define GLAPIENTRYP GLAPIENTRY *'
> - print '#endif'
> - print ''
> - print ''
> - print '#ifdef __cplusplus'
> - print 'extern "C" {'
> - print '#endif'
> - print ''
> - print 'struct _glapi_table'
> - print '{'
> + print('#ifndef GLAPIENTRYP')
> + print('# ifndef GLAPIENTRY')
> + print('# define GLAPIENTRY')
> + print('# endif')
> + print('')
> + print('# define GLAPIENTRYP GLAPIENTRY *')
> + print('#endif')
> + print('')
> + print('')
> + print('#ifdef __cplusplus')
> + print('extern "C" {')
> + print('#endif')
> + print('')
> + print('struct _glapi_table')
> + print('{')
> return
>
> def printRealFooter(self):
> - print '};'
> - print ''
> - print '#ifdef __cplusplus'
> - print '}'
> - print '#endif'
> + print('};')
> + print('')
> + print('#ifdef __cplusplus')
> + print('}')
> + print('#endif')
> return
>
>
> @@ -87,7 +89,7 @@ class PrintRemapTable(gl_XML.gl_print_base):
>
>
> def printRealHeader(self):
> - print """
> + print("""
> /**
> * \\file main/dispatch.h
> * Macros for handling GL dispatch tables.
> @@ -98,27 +100,27 @@ class PrintRemapTable(gl_XML.gl_print_base):
> * can SET_FuncName, are used to get and set the dispatch pointer for the
> * named function in the specified dispatch table.
> */
> -"""
> +""")
> return
>
>
> def printBody(self, api):
> - print '#define CALL_by_offset(disp, cast, offset, parameters) \\'
> - print ' (*(cast (GET_by_offset(disp, offset)))) parameters'
> - print '#define GET_by_offset(disp, offset) \\'
> - print ' (offset >= 0) ? (((_glapi_proc *)(disp))[offset]) : NULL'
> - print '#define SET_by_offset(disp, offset, fn) \\'
> - print ' do { \\'
> - print ' if ( (offset) < 0 ) { \\'
> - print ' /* fprintf( stderr, "[%s:%u] SET_by_offset(%p, %d, %s)!\\n", */ \\'
> - print ' /* __func__, __LINE__, disp, offset, # fn); */ \\'
> - print ' /* abort(); */ \\'
> - print ' } \\'
> - print ' else { \\'
> - print ' ( (_glapi_proc *) (disp) )[offset] = (_glapi_proc) fn; \\'
> - print ' } \\'
> - print ' } while(0)'
> - print ''
> + print('#define CALL_by_offset(disp, cast, offset, parameters) \\')
> + print(' (*(cast (GET_by_offset(disp, offset)))) parameters')
> + print('#define GET_by_offset(disp, offset) \\')
> + print(' (offset >= 0) ? (((_glapi_proc *)(disp))[offset]) : NULL')
> + print('#define SET_by_offset(disp, offset, fn) \\')
> + print(' do { \\')
> + print(' if ( (offset) < 0 ) { \\')
> + print(' /* fprintf( stderr, "[%s:%u] SET_by_offset(%p, %d, %s)!\\n", */ \\')
> + print(' /* __func__, __LINE__, disp, offset, # fn); */ \\')
> + print(' /* abort(); */ \\')
> + print(' } \\')
> + print(' else { \\')
> + print(' ( (_glapi_proc *) (disp) )[offset] = (_glapi_proc) fn; \\')
> + print(' } \\')
> + print(' } while(0)')
> + print('')
>
> functions = []
> abi_functions = []
> @@ -130,43 +132,43 @@ class PrintRemapTable(gl_XML.gl_print_base):
> else:
> abi_functions.append([f, -1])
>
> - print '/* total number of offsets below */'
> - print '#define _gloffset_COUNT %d' % (len(abi_functions + functions))
> - print ''
> + print('/* total number of offsets below */')
> + print('#define _gloffset_COUNT %d' % (len(abi_functions + functions)))
> + print('')
>
> for f, index in abi_functions:
> - print '#define _gloffset_%s %d' % (f.name, f.offset)
> + print('#define _gloffset_%s %d' % (f.name, f.offset))
>
> remap_table = "driDispatchRemapTable"
>
> - print '#define %s_size %u' % (remap_table, count)
> - print 'extern int %s[ %s_size ];' % (remap_table, remap_table)
> - print ''
> + print('#define %s_size %u' % (remap_table, count))
> + print('extern int %s[ %s_size ];' % (remap_table, remap_table))
> + print('')
>
> for f, index in functions:
> - print '#define %s_remap_index %u' % (f.name, index)
> + print('#define %s_remap_index %u' % (f.name, index))
>
> - print ''
> + print('')
>
> for f, index in functions:
> - print '#define _gloffset_%s %s[%s_remap_index]' % (f.name, remap_table, f.name)
> + print('#define _gloffset_%s %s[%s_remap_index]' % (f.name, remap_table, f.name))
>
> - print ''
> + print('')
>
> for f, index in abi_functions + functions:
> arg_string = gl_XML.create_parameter_string(f.parameters, 0)
>
> - print 'typedef %s (GLAPIENTRYP _glptr_%s)(%s);' % (f.return_type, f.name, arg_string)
> - print '#define CALL_%s(disp, parameters) \\' % (f.name)
> - print ' (* GET_%s(disp)) parameters' % (f.name)
> - print 'static inline _glptr_%s GET_%s(struct _glapi_table *disp) {' % (f.name, f.name)
> - print ' return (_glptr_%s) (GET_by_offset(disp, _gloffset_%s));' % (f.name, f.name)
> - print '}'
> - print
> - print 'static inline void SET_%s(struct _glapi_table *disp, %s (GLAPIENTRYP fn)(%s)) {' % (f.name, f.return_type, arg_string)
> - print ' SET_by_offset(disp, _gloffset_%s, fn);' % (f.name)
> - print '}'
> - print
> + print('typedef %s (GLAPIENTRYP _glptr_%s)(%s);' % (f.return_type, f.name, arg_string))
> + print('#define CALL_%s(disp, parameters) \\' % (f.name))
> + print(' (* GET_%s(disp)) parameters' % (f.name))
> + print('static inline _glptr_%s GET_%s(struct _glapi_table *disp) {' % (f.name, f.name))
> + print(' return (_glptr_%s) (GET_by_offset(disp, _gloffset_%s));' % (f.name, f.name))
> + print('}')
> + print()
> + print('static inline void SET_%s(struct _glapi_table *disp, %s (GLAPIENTRYP fn)(%s)) {' % (f.name, f.return_type, arg_string))
> + print(' SET_by_offset(disp, _gloffset_%s, fn);' % (f.name))
> + print('}')
> + print()
>
> return
>
> diff --git a/src/mapi/glapi/gen/gl_x86-64_asm.py b/src/mapi/glapi/gen/gl_x86-64_asm.py
> index cde80ecdc0..36d3ecdde9 100644
> --- a/src/mapi/glapi/gen/gl_x86-64_asm.py
> +++ b/src/mapi/glapi/gen/gl_x86-64_asm.py
> @@ -24,6 +24,8 @@
> # Authors:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> import argparse
> import copy
>
> @@ -54,7 +56,7 @@ def save_all_regs(registers):
> adjust_stack = 0
> if not should_use_push(registers):
> adjust_stack = local_size(registers)
> - print '\tsubq\t$%u, %%rsp' % (adjust_stack)
> + print('\tsubq\t$%u, %%rsp' % (adjust_stack))
>
> for [reg, stack_offset] in registers:
> save_reg( reg, stack_offset, adjust_stack )
> @@ -72,18 +74,18 @@ def restore_all_regs(registers):
> restore_reg(reg, stack_offset, adjust_stack)
>
> if adjust_stack:
> - print '\taddq\t$%u, %%rsp' % (adjust_stack)
> + print('\taddq\t$%u, %%rsp' % (adjust_stack))
> return
>
>
> def save_reg(reg, offset, use_move):
> if use_move:
> if offset == 0:
> - print '\tmovq\t%s, (%%rsp)' % (reg)
> + print('\tmovq\t%s, (%%rsp)' % (reg))
> else:
> - print '\tmovq\t%s, %u(%%rsp)' % (reg, offset)
> + print('\tmovq\t%s, %u(%%rsp)' % (reg, offset))
> else:
> - print '\tpushq\t%s' % (reg)
> + print('\tpushq\t%s' % (reg))
>
> return
>
> @@ -91,11 +93,11 @@ def save_reg(reg, offset, use_move):
> def restore_reg(reg, offset, use_move):
> if use_move:
> if offset == 0:
> - print '\tmovq\t(%%rsp), %s' % (reg)
> + print('\tmovq\t(%%rsp), %s' % (reg))
> else:
> - print '\tmovq\t%u(%%rsp), %s' % (offset, reg)
> + print('\tmovq\t%u(%%rsp), %s' % (offset, reg))
> else:
> - print '\tpopq\t%s' % (reg)
> + print('\tpopq\t%s' % (reg))
>
> return
>
> @@ -119,62 +121,62 @@ class PrintGenericStubs(gl_XML.gl_print_base):
>
>
> def printRealHeader(self):
> - print "/* If we build with gcc's -fvisibility=hidden flag, we'll need to change"
> - print " * the symbol visibility mode to 'default'."
> - print ' */'
> - print ''
> - print '#include "x86/assyntax.h"'
> - print ''
> - print '#ifdef __GNUC__'
> - print '# pragma GCC visibility push(default)'
> - print '# define HIDDEN(x) .hidden x'
> - print '#else'
> - print '# define HIDDEN(x)'
> - print '#endif'
> - print ''
> - print '# if defined(USE_MGL_NAMESPACE)'
> - print '# define GL_PREFIX(n) GLNAME(CONCAT(mgl,n))'
> - print '# define _glapi_Dispatch _mglapi_Dispatch'
> - print '# else'
> - print '# define GL_PREFIX(n) GLNAME(CONCAT(gl,n))'
> - print '# endif'
> - print ''
> - print '\t.text'
> - print ''
> - print '#ifdef GLX_USE_TLS'
> - print ''
> - print '_x86_64_get_dispatch:'
> - print '\tmovq\t_glapi_tls_Dispatch at GOTTPOFF(%rip), %rax'
> - print '\tmovq\t%fs:(%rax), %rax'
> - print '\tret'
> - print '\t.size\t_x86_64_get_dispatch, .-_x86_64_get_dispatch'
> - print ''
> - print '#elif defined(HAVE_PTHREAD)'
> - print ''
> - print '\t.extern\t_glapi_Dispatch'
> - print '\t.extern\t_gl_DispatchTSD'
> - print '\t.extern\tpthread_getspecific'
> - print ''
> - print '\t.p2align\t4,,15'
> - print '_x86_64_get_dispatch:'
> - print '\tmovq\t_gl_DispatchTSD at GOTPCREL(%rip), %rax'
> - print '\tmovl\t(%rax), %edi'
> - print '\tjmp\tpthread_getspecific at PLT'
> - print ''
> - print '#else'
> - print ''
> - print '\t.extern\t_glapi_get_dispatch'
> - print ''
> - print '#endif'
> - print ''
> + print("/* If we build with gcc's -fvisibility=hidden flag, we'll need to change")
> + print(" * the symbol visibility mode to 'default'.")
> + print(' */')
> + print('')
> + print('#include "x86/assyntax.h"')
> + print('')
> + print('#ifdef __GNUC__')
> + print('# pragma GCC visibility push(default)')
> + print('# define HIDDEN(x) .hidden x')
> + print('#else')
> + print('# define HIDDEN(x)')
> + print('#endif')
> + print('')
> + print('# if defined(USE_MGL_NAMESPACE)')
> + print('# define GL_PREFIX(n) GLNAME(CONCAT(mgl,n))')
> + print('# define _glapi_Dispatch _mglapi_Dispatch')
> + print('# else')
> + print('# define GL_PREFIX(n) GLNAME(CONCAT(gl,n))')
> + print('# endif')
> + print('')
> + print('\t.text')
> + print('')
> + print('#ifdef GLX_USE_TLS')
> + print('')
> + print('_x86_64_get_dispatch:')
> + print('\tmovq\t_glapi_tls_Dispatch at GOTTPOFF(%rip), %rax')
> + print('\tmovq\t%fs:(%rax), %rax')
> + print('\tret')
> + print('\t.size\t_x86_64_get_dispatch, .-_x86_64_get_dispatch')
> + print('')
> + print('#elif defined(HAVE_PTHREAD)')
> + print('')
> + print('\t.extern\t_glapi_Dispatch')
> + print('\t.extern\t_gl_DispatchTSD')
> + print('\t.extern\tpthread_getspecific')
> + print('')
> + print('\t.p2align\t4,,15')
> + print('_x86_64_get_dispatch:')
> + print('\tmovq\t_gl_DispatchTSD at GOTPCREL(%rip), %rax')
> + print('\tmovl\t(%rax), %edi')
> + print('\tjmp\tpthread_getspecific at PLT')
> + print('')
> + print('#else')
> + print('')
> + print('\t.extern\t_glapi_get_dispatch')
> + print('')
> + print('#endif')
> + print('')
> return
>
>
> def printRealFooter(self):
> - print ''
> - print '#if defined (__ELF__) && defined (__linux__)'
> - print ' .section .note.GNU-stack,"",%progbits'
> - print '#endif'
> + print('')
> + print('#if defined (__ELF__) && defined (__linux__)')
> + print(' .section .note.GNU-stack,"",%progbits')
> + print('#endif')
> return
>
>
> @@ -219,47 +221,47 @@ class PrintGenericStubs(gl_XML.gl_print_base):
>
> name = f.dispatch_name()
>
> - print '\t.p2align\t4,,15'
> - print '\t.globl\tGL_PREFIX(%s)' % (name)
> - print '\t.type\tGL_PREFIX(%s), @function' % (name)
> + print('\t.p2align\t4,,15')
> + print('\t.globl\tGL_PREFIX(%s)' % (name))
> + print('\t.type\tGL_PREFIX(%s), @function' % (name))
> if not f.is_static_entry_point(f.name):
> - print '\tHIDDEN(GL_PREFIX(%s))' % (name)
> - print 'GL_PREFIX(%s):' % (name)
> - print '#if defined(GLX_USE_TLS)'
> - print '\tcall\t_x86_64_get_dispatch at PLT'
> - print '\tmovq\t%u(%%rax), %%r11' % (f.offset * 8)
> - print '\tjmp\t*%r11'
> - print '#elif defined(HAVE_PTHREAD)'
> + print('\tHIDDEN(GL_PREFIX(%s))' % (name))
> + print('GL_PREFIX(%s):' % (name))
> + print('#if defined(GLX_USE_TLS)')
> + print('\tcall\t_x86_64_get_dispatch at PLT')
> + print('\tmovq\t%u(%%rax), %%r11' % (f.offset * 8))
> + print('\tjmp\t*%r11')
> + print('#elif defined(HAVE_PTHREAD)')
>
> save_all_regs(registers)
> - print '\tcall\t_x86_64_get_dispatch at PLT'
> + print('\tcall\t_x86_64_get_dispatch at PLT')
> restore_all_regs(registers)
>
> if f.offset == 0:
> - print '\tmovq\t(%rax), %r11'
> + print('\tmovq\t(%rax), %r11')
> else:
> - print '\tmovq\t%u(%%rax), %%r11' % (f.offset * 8)
> + print('\tmovq\t%u(%%rax), %%r11' % (f.offset * 8))
>
> - print '\tjmp\t*%r11'
> + print('\tjmp\t*%r11')
>
> - print '#else'
> - print '\tmovq\t_glapi_Dispatch(%rip), %rax'
> - print '\ttestq\t%rax, %rax'
> - print '\tje\t1f'
> - print '\tmovq\t%u(%%rax), %%r11' % (f.offset * 8)
> - print '\tjmp\t*%r11'
> - print '1:'
> + print('#else')
> + print('\tmovq\t_glapi_Dispatch(%rip), %rax')
> + print('\ttestq\t%rax, %rax')
> + print('\tje\t1f')
> + print('\tmovq\t%u(%%rax), %%r11' % (f.offset * 8))
> + print('\tjmp\t*%r11')
> + print('1:')
>
> save_all_regs(registers)
> - print '\tcall\t_glapi_get_dispatch'
> + print('\tcall\t_glapi_get_dispatch')
> restore_all_regs(registers)
>
> - print '\tmovq\t%u(%%rax), %%r11' % (f.offset * 8)
> - print '\tjmp\t*%r11'
> - print '#endif /* defined(GLX_USE_TLS) */'
> + print('\tmovq\t%u(%%rax), %%r11' % (f.offset * 8))
> + print('\tjmp\t*%r11')
> + print('#endif /* defined(GLX_USE_TLS) */')
>
> - print '\t.size\tGL_PREFIX(%s), .-GL_PREFIX(%s)' % (name, name)
> - print ''
> + print('\t.size\tGL_PREFIX(%s), .-GL_PREFIX(%s)' % (name, name))
> + print('')
> return
>
>
> @@ -276,11 +278,11 @@ class PrintGenericStubs(gl_XML.gl_print_base):
> text = '\t.globl GL_PREFIX(%s) ; .set GL_PREFIX(%s), GL_PREFIX(%s)' % (n, n, dispatch)
>
> if f.has_different_protocol(n):
> - print '#ifndef GLX_INDIRECT_RENDERING'
> - print text
> - print '#endif'
> + print('#ifndef GLX_INDIRECT_RENDERING')
> + print(text)
> + print('#endif')
> else:
> - print text
> + print(text)
>
> return
>
> diff --git a/src/mapi/glapi/gen/gl_x86_asm.py b/src/mapi/glapi/gen/gl_x86_asm.py
> index 24c15a7080..ada849f35e 100644
> --- a/src/mapi/glapi/gen/gl_x86_asm.py
> +++ b/src/mapi/glapi/gen/gl_x86_asm.py
> @@ -24,6 +24,8 @@
> # Authors:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> import argparse
>
> import license
> @@ -53,135 +55,135 @@ class PrintGenericStubs(gl_XML.gl_print_base):
>
>
> def printRealHeader(self):
> - print '#include "x86/assyntax.h"'
> - print ''
> - print '#if defined(STDCALL_API)'
> - print '# if defined(USE_MGL_NAMESPACE)'
> - print '# define GL_PREFIX(n,n2) GLNAME(CONCAT(mgl,n2))'
> - print '# else'
> - print '# define GL_PREFIX(n,n2) GLNAME(CONCAT(gl,n2))'
> - print '# endif'
> - print '#else'
> - print '# if defined(USE_MGL_NAMESPACE)'
> - print '# define GL_PREFIX(n,n2) GLNAME(CONCAT(mgl,n))'
> - print '# define _glapi_Dispatch _mglapi_Dispatch'
> - print '# else'
> - print '# define GL_PREFIX(n,n2) GLNAME(CONCAT(gl,n))'
> - print '# endif'
> - print '#endif'
> - print ''
> - print '#define GL_OFFSET(x) CODEPTR(REGOFF(4 * x, EAX))'
> - print ''
> - print '#if defined(GNU_ASSEMBLER) && !defined(__MINGW32__) && !defined(__APPLE__)'
> - print '#define GLOBL_FN(x) GLOBL x ; .type x, @function'
> - print '#else'
> - print '#define GLOBL_FN(x) GLOBL x'
> - print '#endif'
> - print ''
> - print ''
> - print '#ifdef GLX_USE_TLS'
> - print ''
> - print '#ifdef GLX_X86_READONLY_TEXT'
> - print '# define CTX_INSNS MOV_L(GS:(EAX), EAX)'
> - print '#else'
> - print '# define CTX_INSNS NOP /* Pad for init_glapi_relocs() */'
> - print '#endif'
> - print ''
> - print '# define GL_STUB(fn,off,fn_alt)\t\t\t\\'
> - print 'ALIGNTEXT16;\t\t\t\t\t\t\\'
> - print 'GLOBL_FN(GL_PREFIX(fn, fn_alt));\t\t\t\\'
> - print 'GL_PREFIX(fn, fn_alt):\t\t\t\t\t\\'
> - print '\tCALL(_x86_get_dispatch) ;\t\t\t\\'
> - print '\tCTX_INSNS ; \\'
> - print '\tJMP(GL_OFFSET(off))'
> - print ''
> - print '#elif defined(HAVE_PTHREAD)'
> - print '# define GL_STUB(fn,off,fn_alt)\t\t\t\\'
> - print 'ALIGNTEXT16;\t\t\t\t\t\t\\'
> - print 'GLOBL_FN(GL_PREFIX(fn, fn_alt));\t\t\t\\'
> - print 'GL_PREFIX(fn, fn_alt):\t\t\t\t\t\\'
> - print '\tMOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) ;\t\\'
> - print '\tTEST_L(EAX, EAX) ;\t\t\t\t\\'
> - print '\tJE(1f) ;\t\t\t\t\t\\'
> - print '\tJMP(GL_OFFSET(off)) ;\t\t\t\t\\'
> - print '1:\tCALL(_x86_get_dispatch) ;\t\t\t\\'
> - print '\tJMP(GL_OFFSET(off))'
> - print '#else'
> - print '# define GL_STUB(fn,off,fn_alt)\t\t\t\\'
> - print 'ALIGNTEXT16;\t\t\t\t\t\t\\'
> - print 'GLOBL_FN(GL_PREFIX(fn, fn_alt));\t\t\t\\'
> - print 'GL_PREFIX(fn, fn_alt):\t\t\t\t\t\\'
> - print '\tMOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) ;\t\\'
> - print '\tTEST_L(EAX, EAX) ;\t\t\t\t\\'
> - print '\tJE(1f) ;\t\t\t\t\t\\'
> - print '\tJMP(GL_OFFSET(off)) ;\t\t\t\t\\'
> - print '1:\tCALL(_glapi_get_dispatch) ;\t\t\t\\'
> - print '\tJMP(GL_OFFSET(off))'
> - print '#endif'
> - print ''
> - print '#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS'
> - print '# define GL_STUB_ALIAS(fn,off,fn_alt,alias,alias_alt)\t\\'
> - print '\t.globl\tGL_PREFIX(fn, fn_alt) ;\t\t\t\\'
> - print '\t.set\tGL_PREFIX(fn, fn_alt), GL_PREFIX(alias, alias_alt)'
> - print '#else'
> - print '# define GL_STUB_ALIAS(fn,off,fn_alt,alias,alias_alt)\t\\'
> - print ' GL_STUB(fn, off, fn_alt)'
> - print '#endif'
> - print ''
> - print 'SEG_TEXT'
> - print ''
> - print '#ifdef GLX_USE_TLS'
> - print ''
> - print '\tGLOBL\tGLNAME(_x86_get_dispatch)'
> - print '\tHIDDEN(GLNAME(_x86_get_dispatch))'
> - print 'ALIGNTEXT16'
> - print 'GLNAME(_x86_get_dispatch):'
> - print '\tcall 1f'
> - print '1:\tpopl %eax'
> - print '\taddl $_GLOBAL_OFFSET_TABLE_+[.-1b], %eax'
> - print '\tmovl _glapi_tls_Dispatch at GOTNTPOFF(%eax), %eax'
> - print '\tret'
> - print ''
> - print '#elif defined(HAVE_PTHREAD)'
> - print 'EXTERN GLNAME(_glapi_Dispatch)'
> - print 'EXTERN GLNAME(_gl_DispatchTSD)'
> - print 'EXTERN GLNAME(pthread_getspecific)'
> - print ''
> - print 'ALIGNTEXT16'
> - print 'GLNAME(_x86_get_dispatch):'
> - print '\tSUB_L(CONST(24), ESP)'
> - print '\tPUSH_L(GLNAME(_gl_DispatchTSD))'
> - print '\tCALL(GLNAME(pthread_getspecific))'
> - print '\tADD_L(CONST(28), ESP)'
> - print '\tRET'
> - print '#else'
> - print 'EXTERN GLNAME(_glapi_get_dispatch)'
> - print '#endif'
> - print ''
> -
> - print '#if defined( GLX_USE_TLS ) && !defined( GLX_X86_READONLY_TEXT )'
> - print '\t\t.section\twtext, "awx", @progbits'
> - print '#endif /* defined( GLX_USE_TLS ) */'
> -
> - print ''
> - print '\t\tALIGNTEXT16'
> - print '\t\tGLOBL GLNAME(gl_dispatch_functions_start)'
> - print '\t\tHIDDEN(GLNAME(gl_dispatch_functions_start))'
> - print 'GLNAME(gl_dispatch_functions_start):'
> - print ''
> + print('#include "x86/assyntax.h"')
> + print('')
> + print('#if defined(STDCALL_API)')
> + print('# if defined(USE_MGL_NAMESPACE)')
> + print('# define GL_PREFIX(n,n2) GLNAME(CONCAT(mgl,n2))')
> + print('# else')
> + print('# define GL_PREFIX(n,n2) GLNAME(CONCAT(gl,n2))')
> + print('# endif')
> + print('#else')
> + print('# if defined(USE_MGL_NAMESPACE)')
> + print('# define GL_PREFIX(n,n2) GLNAME(CONCAT(mgl,n))')
> + print('# define _glapi_Dispatch _mglapi_Dispatch')
> + print('# else')
> + print('# define GL_PREFIX(n,n2) GLNAME(CONCAT(gl,n))')
> + print('# endif')
> + print('#endif')
> + print('')
> + print('#define GL_OFFSET(x) CODEPTR(REGOFF(4 * x, EAX))')
> + print('')
> + print('#if defined(GNU_ASSEMBLER) && !defined(__MINGW32__) && !defined(__APPLE__)')
> + print('#define GLOBL_FN(x) GLOBL x ; .type x, @function')
> + print('#else')
> + print('#define GLOBL_FN(x) GLOBL x')
> + print('#endif')
> + print('')
> + print('')
> + print('#ifdef GLX_USE_TLS')
> + print('')
> + print('#ifdef GLX_X86_READONLY_TEXT')
> + print('# define CTX_INSNS MOV_L(GS:(EAX), EAX)')
> + print('#else')
> + print('# define CTX_INSNS NOP /* Pad for init_glapi_relocs() */')
> + print('#endif')
> + print('')
> + print('# define GL_STUB(fn,off,fn_alt)\t\t\t\\')
> + print('ALIGNTEXT16;\t\t\t\t\t\t\\')
> + print('GLOBL_FN(GL_PREFIX(fn, fn_alt));\t\t\t\\')
> + print('GL_PREFIX(fn, fn_alt):\t\t\t\t\t\\')
> + print('\tCALL(_x86_get_dispatch) ;\t\t\t\\')
> + print('\tCTX_INSNS ; \\')
> + print('\tJMP(GL_OFFSET(off))')
> + print('')
> + print('#elif defined(HAVE_PTHREAD)')
> + print('# define GL_STUB(fn,off,fn_alt)\t\t\t\\')
> + print('ALIGNTEXT16;\t\t\t\t\t\t\\')
> + print('GLOBL_FN(GL_PREFIX(fn, fn_alt));\t\t\t\\')
> + print('GL_PREFIX(fn, fn_alt):\t\t\t\t\t\\')
> + print('\tMOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) ;\t\\')
> + print('\tTEST_L(EAX, EAX) ;\t\t\t\t\\')
> + print('\tJE(1f) ;\t\t\t\t\t\\')
> + print('\tJMP(GL_OFFSET(off)) ;\t\t\t\t\\')
> + print('1:\tCALL(_x86_get_dispatch) ;\t\t\t\\')
> + print('\tJMP(GL_OFFSET(off))')
> + print('#else')
> + print('# define GL_STUB(fn,off,fn_alt)\t\t\t\\')
> + print('ALIGNTEXT16;\t\t\t\t\t\t\\')
> + print('GLOBL_FN(GL_PREFIX(fn, fn_alt));\t\t\t\\')
> + print('GL_PREFIX(fn, fn_alt):\t\t\t\t\t\\')
> + print('\tMOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) ;\t\\')
> + print('\tTEST_L(EAX, EAX) ;\t\t\t\t\\')
> + print('\tJE(1f) ;\t\t\t\t\t\\')
> + print('\tJMP(GL_OFFSET(off)) ;\t\t\t\t\\')
> + print('1:\tCALL(_glapi_get_dispatch) ;\t\t\t\\')
> + print('\tJMP(GL_OFFSET(off))')
> + print('#endif')
> + print('')
> + print('#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS')
> + print('# define GL_STUB_ALIAS(fn,off,fn_alt,alias,alias_alt)\t\\')
> + print('\t.globl\tGL_PREFIX(fn, fn_alt) ;\t\t\t\\')
> + print('\t.set\tGL_PREFIX(fn, fn_alt), GL_PREFIX(alias, alias_alt)')
> + print('#else')
> + print('# define GL_STUB_ALIAS(fn,off,fn_alt,alias,alias_alt)\t\\')
> + print(' GL_STUB(fn, off, fn_alt)')
> + print('#endif')
> + print('')
> + print('SEG_TEXT')
> + print('')
> + print('#ifdef GLX_USE_TLS')
> + print('')
> + print('\tGLOBL\tGLNAME(_x86_get_dispatch)')
> + print('\tHIDDEN(GLNAME(_x86_get_dispatch))')
> + print('ALIGNTEXT16')
> + print('GLNAME(_x86_get_dispatch):')
> + print('\tcall 1f')
> + print('1:\tpopl %eax')
> + print('\taddl $_GLOBAL_OFFSET_TABLE_+[.-1b], %eax')
> + print('\tmovl _glapi_tls_Dispatch at GOTNTPOFF(%eax), %eax')
> + print('\tret')
> + print('')
> + print('#elif defined(HAVE_PTHREAD)')
> + print('EXTERN GLNAME(_glapi_Dispatch)')
> + print('EXTERN GLNAME(_gl_DispatchTSD)')
> + print('EXTERN GLNAME(pthread_getspecific)')
> + print('')
> + print('ALIGNTEXT16')
> + print('GLNAME(_x86_get_dispatch):')
> + print('\tSUB_L(CONST(24), ESP)')
> + print('\tPUSH_L(GLNAME(_gl_DispatchTSD))')
> + print('\tCALL(GLNAME(pthread_getspecific))')
> + print('\tADD_L(CONST(28), ESP)')
> + print('\tRET')
> + print('#else')
> + print('EXTERN GLNAME(_glapi_get_dispatch)')
> + print('#endif')
> + print('')
> +
> + print('#if defined( GLX_USE_TLS ) && !defined( GLX_X86_READONLY_TEXT )')
> + print('\t\t.section\twtext, "awx", @progbits')
> + print('#endif /* defined( GLX_USE_TLS ) */')
> +
> + print('')
> + print('\t\tALIGNTEXT16')
> + print('\t\tGLOBL GLNAME(gl_dispatch_functions_start)')
> + print('\t\tHIDDEN(GLNAME(gl_dispatch_functions_start))')
> + print('GLNAME(gl_dispatch_functions_start):')
> + print('')
> return
>
>
> def printRealFooter(self):
> - print ''
> - print '\t\tGLOBL\tGLNAME(gl_dispatch_functions_end)'
> - print '\t\tHIDDEN(GLNAME(gl_dispatch_functions_end))'
> - print '\t\tALIGNTEXT16'
> - print 'GLNAME(gl_dispatch_functions_end):'
> - print ''
> - print '#if defined (__ELF__) && defined (__linux__)'
> - print ' .section .note.GNU-stack,"",%progbits'
> - print '#endif'
> + print('')
> + print('\t\tGLOBL\tGLNAME(gl_dispatch_functions_end)')
> + print('\t\tHIDDEN(GLNAME(gl_dispatch_functions_end))')
> + print('\t\tALIGNTEXT16')
> + print('GLNAME(gl_dispatch_functions_end):')
> + print('')
> + print('#if defined (__ELF__) && defined (__linux__)')
> + print(' .section .note.GNU-stack,"",%progbits')
> + print('#endif')
> return
>
>
> @@ -191,10 +193,10 @@ class PrintGenericStubs(gl_XML.gl_print_base):
> stack = self.get_stack_size(f)
> alt = "%s@%u" % (name, stack)
>
> - print '\tGL_STUB(%s, %d, %s)' % (name, f.offset, alt)
> + print('\tGL_STUB(%s, %d, %s)' % (name, f.offset, alt))
>
> if not f.is_static_entry_point(f.name):
> - print '\tHIDDEN(GL_PREFIX(%s, %s))' % (name, alt)
> + print('\tHIDDEN(GL_PREFIX(%s, %s))' % (name, alt))
>
>
> for f in api.functionIterateByOffset():
> @@ -209,11 +211,11 @@ class PrintGenericStubs(gl_XML.gl_print_base):
> text = '\tGL_STUB_ALIAS(%s, %d, %s, %s, %s)' % (n, f.offset, alt2, name, alt)
>
> if f.has_different_protocol(n):
> - print '#ifndef GLX_INDIRECT_RENDERING'
> - print text
> - print '#endif'
> + print('#ifndef GLX_INDIRECT_RENDERING')
> + print(text)
> + print('#endif')
> else:
> - print text
> + print(text)
>
> return
>
> diff --git a/src/mapi/glapi/gen/remap_helper.py b/src/mapi/glapi/gen/remap_helper.py
> index de759d6c04..0740b189f6 100644
> --- a/src/mapi/glapi/gen/remap_helper.py
> +++ b/src/mapi/glapi/gen/remap_helper.py
> @@ -23,6 +23,8 @@
> # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> # IN THE SOFTWARE.
>
> +from __future__ import print_function
> +
> import argparse
>
> import license
> @@ -66,23 +68,23 @@ class PrintGlRemap(gl_XML.gl_print_base):
>
>
> def printRealHeader(self):
> - print '#include "main/dispatch.h"'
> - print '#include "main/remap.h"'
> - print ''
> + print('#include "main/dispatch.h"')
> + print('#include "main/remap.h"')
> + print('')
> return
>
>
> def printBody(self, api):
> pool_indices = {}
>
> - print '/* this is internal to remap.c */'
> - print '#ifndef need_MESA_remap_table'
> - print '#error Only remap.c should include this file!'
> - print '#endif /* need_MESA_remap_table */'
> - print ''
> + print('/* this is internal to remap.c */')
> + print('#ifndef need_MESA_remap_table')
> + print('#error Only remap.c should include this file!')
> + print('#endif /* need_MESA_remap_table */')
> + print('')
>
> - print ''
> - print 'static const char _mesa_function_pool[] ='
> + print('')
> + print('static const char _mesa_function_pool[] =')
>
> # output string pool
> index = 0;
> @@ -100,26 +102,26 @@ class PrintGlRemap(gl_XML.gl_print_base):
> else:
> comments = "dynamic"
>
> - print ' /* _mesa_function_pool[%d]: %s (%s) */' \
> - % (index, f.name, comments)
> + print(' /* _mesa_function_pool[%d]: %s (%s) */' \
> + % (index, f.name, comments))
> for line in spec:
> - print ' "%s\\0"' % line
> + print(' "%s\\0"' % line)
> index += len(line) + 1
> - print ' ;'
> - print ''
> + print(' ;')
> + print('')
>
> - print '/* these functions need to be remapped */'
> - print 'static const struct gl_function_pool_remap MESA_remap_table_functions[] = {'
> + print('/* these functions need to be remapped */')
> + print('static const struct gl_function_pool_remap MESA_remap_table_functions[] = {')
> # output all functions that need to be remapped
> # iterate by offsets so that they are sorted by remap indices
> for f in api.functionIterateByOffset():
> if not f.assign_offset:
> continue
> - print ' { %5d, %s_remap_index },' \
> - % (pool_indices[f], f.name)
> - print ' { -1, -1 }'
> - print '};'
> - print ''
> + print(' { %5d, %s_remap_index },' \
> + % (pool_indices[f], f.name))
> + print(' { -1, -1 }')
> + print('};')
> + print('')
> return
>
>
> diff --git a/src/mapi/glapi/gen/typeexpr.py b/src/mapi/glapi/gen/typeexpr.py
> index 6da85c289c..5ff9798dad 100644
> --- a/src/mapi/glapi/gen/typeexpr.py
> +++ b/src/mapi/glapi/gen/typeexpr.py
> @@ -24,6 +24,8 @@
> # Authors:
> # Ian Romanick <idr at us.ibm.com>
>
> +from __future__ import print_function
> +
> import string, copy
>
> class type_node(object):
> @@ -286,6 +288,6 @@ if __name__ == '__main__':
> create_initial_types()
>
> for t in types_to_try:
> - print 'Trying "%s"...' % (t)
> + print('Trying "%s"...' % (t))
> te = type_expression( t )
> - print 'Got "%s" (%u, %u).' % (te.string(), te.get_stack_size(), te.get_element_size())
> + print('Got "%s" (%u, %u).' % (te.string(), te.get_stack_size(), te.get_element_size()))
> diff --git a/src/mapi/mapi_abi.py b/src/mapi/mapi_abi.py
> index 82a2511ec3..0a49c06ff2 100644
> --- a/src/mapi/mapi_abi.py
> +++ b/src/mapi/mapi_abi.py
> @@ -24,6 +24,8 @@
> # Authors:
> # Chia-I Wu <olv at lunarg.com>
>
> +from __future__ import print_function
> +
> import sys
> # make it possible to import glapi
> import os
> @@ -541,79 +543,79 @@ class ABIPrinter(object):
> return "\n".join(asm)
>
> def output_for_lib(self):
> - print self.c_notice()
> + print(self.c_notice())
>
> if self.c_header:
> - print
> - print self.c_header
> + print()
> + print(self.c_header)
>
> - print
> - print '#ifdef MAPI_TMP_DEFINES'
> - print self.c_public_includes()
> - print
> - print self.c_public_declarations(self.prefix_lib)
> - print '#undef MAPI_TMP_DEFINES'
> - print '#endif /* MAPI_TMP_DEFINES */'
> + print()
> + print('#ifdef MAPI_TMP_DEFINES')
> + print(self.c_public_includes())
> + print()
> + print(self.c_public_declarations(self.prefix_lib))
> + print('#undef MAPI_TMP_DEFINES')
> + print('#endif /* MAPI_TMP_DEFINES */')
>
> if self.lib_need_table_size:
> - print
> - print '#ifdef MAPI_TMP_TABLE'
> - print self.c_mapi_table()
> - print '#undef MAPI_TMP_TABLE'
> - print '#endif /* MAPI_TMP_TABLE */'
> + print()
> + print('#ifdef MAPI_TMP_TABLE')
> + print(self.c_mapi_table())
> + print('#undef MAPI_TMP_TABLE')
> + print('#endif /* MAPI_TMP_TABLE */')
>
> if self.lib_need_noop_array:
> - print
> - print '#ifdef MAPI_TMP_NOOP_ARRAY'
> - print '#ifdef DEBUG'
> - print
> - print self.c_noop_functions(self.prefix_noop, self.prefix_warn)
> - print
> - print 'const mapi_func table_%s_array[] = {' % (self.prefix_noop)
> - print self.c_noop_initializer(self.prefix_noop, False)
> - print '};'
> - print
> - print '#else /* DEBUG */'
> - print
> - print 'const mapi_func table_%s_array[] = {' % (self.prefix_noop)
> - print self.c_noop_initializer(self.prefix_noop, True)
> - print '};'
> - print
> - print '#endif /* DEBUG */'
> - print '#undef MAPI_TMP_NOOP_ARRAY'
> - print '#endif /* MAPI_TMP_NOOP_ARRAY */'
> + print()
> + print('#ifdef MAPI_TMP_NOOP_ARRAY')
> + print('#ifdef DEBUG')
> + print()
> + print(self.c_noop_functions(self.prefix_noop, self.prefix_warn))
> + print()
> + print('const mapi_func table_%s_array[] = {' % (self.prefix_noop))
> + print(self.c_noop_initializer(self.prefix_noop, False))
> + print('};')
> + print()
> + print('#else /* DEBUG */')
> + print()
> + print('const mapi_func table_%s_array[] = {' % (self.prefix_noop))
> + print(self.c_noop_initializer(self.prefix_noop, True))
> + print('};')
> + print()
> + print('#endif /* DEBUG */')
> + print('#undef MAPI_TMP_NOOP_ARRAY')
> + print('#endif /* MAPI_TMP_NOOP_ARRAY */')
>
> if self.lib_need_stubs:
> pool, pool_offsets = self.c_stub_string_pool()
> - print
> - print '#ifdef MAPI_TMP_PUBLIC_STUBS'
> - print 'static const char public_string_pool[] ='
> - print pool
> - print
> - print 'static const struct mapi_stub public_stubs[] = {'
> - print self.c_stub_initializer(self.prefix_lib, pool_offsets)
> - print '};'
> - print '#undef MAPI_TMP_PUBLIC_STUBS'
> - print '#endif /* MAPI_TMP_PUBLIC_STUBS */'
> + print()
> + print('#ifdef MAPI_TMP_PUBLIC_STUBS')
> + print('static const char public_string_pool[] =')
> + print(pool)
> + print()
> + print('static const struct mapi_stub public_stubs[] = {')
> + print(self.c_stub_initializer(self.prefix_lib, pool_offsets))
> + print('};')
> + print('#undef MAPI_TMP_PUBLIC_STUBS')
> + print('#endif /* MAPI_TMP_PUBLIC_STUBS */')
>
> if self.lib_need_all_entries:
> - print
> - print '#ifdef MAPI_TMP_PUBLIC_ENTRIES'
> - print self.c_public_dispatches(self.prefix_lib, False)
> - print
> - print 'static const mapi_func public_entries[] = {'
> - print self.c_public_initializer(self.prefix_lib)
> - print '};'
> - print '#undef MAPI_TMP_PUBLIC_ENTRIES'
> - print '#endif /* MAPI_TMP_PUBLIC_ENTRIES */'
> -
> - print
> - print '#ifdef MAPI_TMP_STUB_ASM_GCC'
> - print '__asm__('
> - print self.c_asm_gcc(self.prefix_lib, False)
> - print ');'
> - print '#undef MAPI_TMP_STUB_ASM_GCC'
> - print '#endif /* MAPI_TMP_STUB_ASM_GCC */'
> + print()
> + print('#ifdef MAPI_TMP_PUBLIC_ENTRIES')
> + print(self.c_public_dispatches(self.prefix_lib, False))
> + print()
> + print('static const mapi_func public_entries[] = {')
> + print(self.c_public_initializer(self.prefix_lib))
> + print('};')
> + print('#undef MAPI_TMP_PUBLIC_ENTRIES')
> + print('#endif /* MAPI_TMP_PUBLIC_ENTRIES */')
> +
> + print()
> + print('#ifdef MAPI_TMP_STUB_ASM_GCC')
> + print('__asm__(')
> + print(self.c_asm_gcc(self.prefix_lib, False))
> + print(');')
> + print('#undef MAPI_TMP_STUB_ASM_GCC')
> + print('#endif /* MAPI_TMP_STUB_ASM_GCC */')
>
> if self.lib_need_non_hidden_entries:
> all_hidden = True
> @@ -622,21 +624,21 @@ class ABIPrinter(object):
> all_hidden = False
> break
> if not all_hidden:
> - print
> - print '#ifdef MAPI_TMP_PUBLIC_ENTRIES_NO_HIDDEN'
> - print self.c_public_dispatches(self.prefix_lib, True)
> - print
> - print '/* does not need public_entries */'
> - print '#undef MAPI_TMP_PUBLIC_ENTRIES_NO_HIDDEN'
> - print '#endif /* MAPI_TMP_PUBLIC_ENTRIES_NO_HIDDEN */'
> -
> - print
> - print '#ifdef MAPI_TMP_STUB_ASM_GCC_NO_HIDDEN'
> - print '__asm__('
> - print self.c_asm_gcc(self.prefix_lib, True)
> - print ');'
> - print '#undef MAPI_TMP_STUB_ASM_GCC_NO_HIDDEN'
> - print '#endif /* MAPI_TMP_STUB_ASM_GCC_NO_HIDDEN */'
> + print()
> + print('#ifdef MAPI_TMP_PUBLIC_ENTRIES_NO_HIDDEN')
> + print(self.c_public_dispatches(self.prefix_lib, True))
> + print()
> + print('/* does not need public_entries */')
> + print('#undef MAPI_TMP_PUBLIC_ENTRIES_NO_HIDDEN')
> + print('#endif /* MAPI_TMP_PUBLIC_ENTRIES_NO_HIDDEN */')
> +
> + print()
> + print('#ifdef MAPI_TMP_STUB_ASM_GCC_NO_HIDDEN')
> + print('__asm__(')
> + print(self.c_asm_gcc(self.prefix_lib, True))
> + print(');')
> + print('#undef MAPI_TMP_STUB_ASM_GCC_NO_HIDDEN')
> + print('#endif /* MAPI_TMP_STUB_ASM_GCC_NO_HIDDEN */')
>
> class GLAPIPrinter(ABIPrinter):
> """OpenGL API Printer"""
> diff --git a/src/mesa/main/format_info.py b/src/mesa/main/format_info.py
> index b0308efc12..bbecaa2451 100644
> --- a/src/mesa/main/format_info.py
> +++ b/src/mesa/main/format_info.py
> @@ -21,6 +21,8 @@
> # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
>
> +from __future__ import print_function
> +
> import format_parser as parser
> import sys
>
> @@ -135,7 +137,7 @@ def get_channel_bits(fmat, chan_name):
>
> formats = parser.parse(sys.argv[1])
>
> -print '''
> +print('''
> /*
> * Mesa 3-D graphics library
> *
> @@ -167,35 +169,35 @@ print '''
>
> static const struct gl_format_info format_info[MESA_FORMAT_COUNT] =
> {
> -'''
> +''')
>
> def format_channel_bits(fmat, tuple_list):
> return ['.%s = %s' % (field, str(get_channel_bits(fmat, name))) for (field, name) in tuple_list]
>
>
> for fmat in formats:
> - print ' {'
> - print ' .Name = {0},'.format(fmat.name)
> - print ' .StrName = "{0}",'.format(fmat.name)
> - print ' .Layout = {0},'.format('MESA_FORMAT_LAYOUT_' + fmat.layout.upper())
> - print ' .BaseFormat = {0},'.format(get_gl_base_format(fmat))
> - print ' .DataType = {0},'.format(get_gl_data_type(fmat))
> + print(' {')
> + print(' .Name = {0},'.format(fmat.name))
> + print(' .StrName = "{0}",'.format(fmat.name))
> + print(' .Layout = {0},'.format('MESA_FORMAT_LAYOUT_' + fmat.layout.upper()))
> + print(' .BaseFormat = {0},'.format(get_gl_base_format(fmat)))
> + print(' .DataType = {0},'.format(get_gl_data_type(fmat)))
>
> bits = [('RedBits', 'r'), ('GreenBits', 'g'), ('BlueBits', 'b'), ('AlphaBits', 'a')]
> - print ' {0},'.format(', '.join(format_channel_bits(fmat, bits)))
> + print(' {0},'.format(', '.join(format_channel_bits(fmat, bits))))
> bits = [('LuminanceBits', 'l'), ('IntensityBits', 'i'), ('DepthBits', 'z'), ('StencilBits', 's')]
> - print ' {0},'.format(', '.join(format_channel_bits(fmat, bits)))
> + print(' {0},'.format(', '.join(format_channel_bits(fmat, bits))))
>
> - print ' .IsSRGBFormat = {0:d},'.format(fmat.colorspace == 'srgb')
> + print(' .IsSRGBFormat = {0:d},'.format(fmat.colorspace == 'srgb'))
>
> - print ' .BlockWidth = {0}, .BlockHeight = {1}, .BlockDepth = {2},'.format(fmat.block_width, fmat.block_height, fmat.block_depth)
> - print ' .BytesPerBlock = {0},'.format(int(fmat.block_size() / 8))
> + print(' .BlockWidth = {0}, .BlockHeight = {1}, .BlockDepth = {2},'.format(fmat.block_width, fmat.block_height, fmat.block_depth))
> + print(' .BytesPerBlock = {0},'.format(int(fmat.block_size() / 8)))
>
> - print ' .Swizzle = {{ {0} }},'.format(', '.join(map(str, fmat.swizzle)))
> + print(' .Swizzle = {{ {0} }},'.format(', '.join(map(str, fmat.swizzle))))
> if fmat.is_array():
> chan = fmat.array_element()
> norm = chan.norm or chan.type == parser.FLOAT
> - print ' .ArrayFormat = MESA_ARRAY_FORMAT({0}),'.format(', '.join([
> + print(' .ArrayFormat = MESA_ARRAY_FORMAT({0}),'.format(', '.join([
> str(chan.size / 8),
> str(int(chan.sign)),
> str(int(chan.type == parser.FLOAT)),
> @@ -205,9 +207,9 @@ for fmat in formats:
> str(fmat.swizzle[1]),
> str(fmat.swizzle[2]),
> str(fmat.swizzle[3]),
> - ]))
> + ])))
> else:
> - print ' .ArrayFormat = 0,'
> - print ' },'
> + print(' .ArrayFormat = 0,')
> + print(' },')
>
> -print '};'
> +print('};')
> diff --git a/src/mesa/main/format_pack.py b/src/mesa/main/format_pack.py
> index 77ab16694e..d3c8d24acd 100644
> --- a/src/mesa/main/format_pack.py
> +++ b/src/mesa/main/format_pack.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>
> from mako.template import Template
> from sys import argv
> @@ -1001,4 +1002,4 @@ _mesa_pack_colormask(mesa_format format, const GLubyte colorMask[4], void *dst)
>
> template = Template(string);
>
> -print template.render(argv = argv[0:])
> +print(template.render(argv = argv[0:]))
> diff --git a/src/mesa/main/format_unpack.py b/src/mesa/main/format_unpack.py
> index 87f64cc151..286c08e621 100644
> --- a/src/mesa/main/format_unpack.py
> +++ b/src/mesa/main/format_unpack.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>
> from mako.template import Template
> from sys import argv
> @@ -891,4 +892,4 @@ _mesa_unpack_depth_stencil_row(mesa_format format, GLuint n,
>
> template = Template(string);
>
> -print template.render(argv = argv[0:])
> +print(template.render(argv = argv[0:]))
> diff --git a/src/mesa/main/get_hash_generator.py b/src/mesa/main/get_hash_generator.py
> index ddd498fee4..86c6771066 100644
> --- a/src/mesa/main/get_hash_generator.py
> +++ b/src/mesa/main/get_hash_generator.py
> @@ -28,6 +28,8 @@
> # Generate a C header file containing hash tables of glGet parameter
> # names for each GL API. The generated file is to be included by glGet.c
>
> +from __future__ import print_function
> +
> import os, sys, imp, getopt
> from collections import defaultdict
> import get_hash_params
> @@ -46,16 +48,16 @@ hash_table_size = 1024
> gl_apis=set(["GL", "GL_CORE", "GLES", "GLES2", "GLES3", "GLES31", "GLES32"])
>
> def print_header():
> - print "typedef const unsigned short table_t[%d];\n" % (hash_table_size)
> - print "static const int prime_factor = %d, prime_step = %d;\n" % \
> - (prime_factor, prime_step)
> + print("typedef const unsigned short table_t[%d];\n" % (hash_table_size))
> + print("static const int prime_factor = %d, prime_step = %d;\n" % \
> + (prime_factor, prime_step))
>
> def print_params(params):
> - print "static const struct value_desc values[] = {"
> + print("static const struct value_desc values[] = {")
> for p in params:
> - print " { %s, %s }," % (p[0], p[1])
> + print(" { %s, %s }," % (p[0], p[1]))
>
> - print "};\n"
> + print("};\n")
>
> def api_name(api):
> return "API_OPEN%s" % api
> @@ -78,7 +80,7 @@ def table_name(api):
> return "table_" + api_name(api)
>
> def print_table(api, table):
> - print "static table_t %s = {" % (table_name(api))
> + print("static table_t %s = {" % (table_name(api)))
>
> # convert sparse (index, value) table into a dense table
> dense_table = [0] * hash_table_size
> @@ -89,9 +91,9 @@ def print_table(api, table):
> for i in range(0, hash_table_size, row_size):
> row = dense_table[i : i + row_size]
> idx_val = ["%4d" % v for v in row]
> - print " " * 4 + ", ".join(idx_val) + ","
> + print(" " * 4 + ", ".join(idx_val) + ",")
>
> - print "};\n"
> + print("};\n")
>
> def print_tables(tables):
> for table in tables:
> @@ -104,12 +106,12 @@ def print_tables(tables):
> i = api_index(api)
> dense_tables[i] = "&%s" % (tname)
>
> - print "static table_t *table_set[] = {"
> + print("static table_t *table_set[] = {")
> for expr in dense_tables:
> - print " %s," % expr
> - print "};\n"
> + print(" %s," % expr)
> + print("};\n")
>
> - print "#define table(api) (*table_set[api])"
> + print("#define table(api) (*table_set[api])")
>
> # Merge tables with matching parameter lists (i.e. GL and GL_CORE)
> def merge_tables(tables):
> diff --git a/src/util/format_srgb.py b/src/util/format_srgb.py
> index 44b35a061d..0b3b5611fc 100644
> --- a/src/util/format_srgb.py
> +++ b/src/util/format_srgb.py
> @@ -1,3 +1,4 @@
> +from __future__ import print_function
>
> CopyRight = '''
> /**************************************************************************
> @@ -57,33 +58,27 @@ def linear_to_srgb(x):
>
>
> def generate_srgb_tables():
> - print 'const float'
> - print 'util_format_srgb_8unorm_to_linear_float_table[256] = {'
> + print('const float')
> + print('util_format_srgb_8unorm_to_linear_float_table[256] = {')
> for j in range(0, 256, 4):
> - print ' ',
> - for i in range(j, j + 4):
> - print '%.7e,' % (srgb_to_linear(i / 255.0),),
> - print
> - print '};'
> - print
> - print 'const uint8_t'
> - print 'util_format_srgb_to_linear_8unorm_table[256] = {'
> + print(' ', end=' ')
> + print(' '.join(['%.7e,' % srgb_to_linear(i / 255.0) for i in range(j, j + 4)]))
> + print('};')
> + print()
> + print('const uint8_t')
> + print('util_format_srgb_to_linear_8unorm_table[256] = {')
> for j in range(0, 256, 16):
> - print ' ',
> - for i in range(j, j + 16):
> - print '%3u,' % (int(srgb_to_linear(i / 255.0) * 255.0 + 0.5),),
> - print
> - print '};'
> - print
> - print 'const uint8_t'
> - print 'util_format_linear_to_srgb_8unorm_table[256] = {'
> + print(' ', end=' ')
> + print(' '.join(['%3u,' % int(srgb_to_linear(i / 255.0) * 255.0 + 0.5) for i in range(j, j + 16)]))
> + print('};')
> + print()
> + print('const uint8_t')
> + print('util_format_linear_to_srgb_8unorm_table[256] = {')
> for j in range(0, 256, 16):
> - print ' ',
> - for i in range(j, j + 16):
> - print '%3u,' % (int(linear_to_srgb(i / 255.0) * 255.0 + 0.5),),
> - print
> - print '};'
> - print
> + print(' ', end=' ')
> + print(' '.join(['%3u,' % int(linear_to_srgb(i / 255.0) * 255.0 + 0.5) for i in range(j, j + 16)]))
> + print('};')
> + print()
>
> # calculate the table interpolation values used in float linear to unorm8 srgb
> numexp = 13
> @@ -128,25 +123,23 @@ def generate_srgb_tables():
>
> valtable.append((int_a << 16) + int_b)
>
> - print 'const unsigned'
> - print 'util_format_linear_to_srgb_helper_table[104] = {'
> + print('const unsigned')
> + print('util_format_linear_to_srgb_helper_table[104] = {')
>
> for j in range(0, nbuckets, 4):
> - print ' ',
> - for i in range(j, j + 4):
> - print '0x%08x,' % (valtable[i],),
> - print
> - print '};'
> - print
> + print(' ', end=' ')
> + print(' '.join(['0x%08x,' % valtable[i] for i in range(j, j + 4)]))
> + print('};')
> + print()
>
> def main():
> - print '/* This file is autogenerated by u_format_srgb.py. Do not edit directly. */'
> - print
> + print('/* This file is autogenerated by u_format_srgb.py. Do not edit directly. */')
> + print()
> # This will print the copyright message on the top of this file
> - print CopyRight.strip()
> - print
> - print '#include "format_srgb.h"'
> - print
> + print(CopyRight.strip())
> + print()
> + print('#include "format_srgb.h"')
> + print()
> generate_srgb_tables()
>
>
> diff --git a/src/util/xmlpool/gen_xmlpool.py b/src/util/xmlpool/gen_xmlpool.py
> index eb68a65174..8336e0f952 100644
> --- a/src/util/xmlpool/gen_xmlpool.py
> +++ b/src/util/xmlpool/gen_xmlpool.py
> @@ -7,6 +7,8 @@
> # `{localedir}/{language}/LC_MESSAGES/options.mo`.
> #
>
> +from __future__ import print_function
> +
> import sys
> import gettext
> import re
> @@ -130,16 +132,16 @@ def expandMatches (matches, translations, end=None):
> # non-ascii unicode chars in the original English descriptions.
> text = escapeCString (trans.ugettext (unicode (expandCString (
> matches[0].expand (r'\5')), "utf-8"))).encode("utf-8")
> - print matches[0].expand (r'\1' + lang + r'\3"' + text + r'"\7') + suffix
> + print(matches[0].expand (r'\1' + lang + r'\3"' + text + r'"\7') + suffix)
> # Expand any subsequent enum lines
> for match in matches[1:]:
> text = escapeCString (trans.ugettext (unicode (expandCString (
> match.expand (r'\3')), "utf-8"))).encode("utf-8")
> - print match.expand (r'\1"' + text + r'"\5')
> + print(match.expand (r'\1"' + text + r'"\5'))
>
> # Expand description end
> if end:
> - print end,
> + print(end, end='')
>
> # Compile a list of translation classes to all supported languages.
> # The first translation is always a NullTranslations.
> @@ -160,10 +162,9 @@ reENUM = re.compile (r'(\s*DRI_CONF_ENUM\s*\([^,]+,\s*)(gettext\s*\(\s*")(
> reDESC_END = re.compile (r'\s*DRI_CONF_DESC_END')
>
> # Print a header
> -print \
> -"/***********************************************************************\n" \
> +print("/***********************************************************************\n" \
> " *** THIS FILE IS GENERATED AUTOMATICALLY. DON'T EDIT! ***\n" \
> -" ***********************************************************************/"
> +" ***********************************************************************/")
>
> # Process the options template and generate options.h with all
> # translations.
> @@ -185,7 +186,7 @@ for line in template:
> continue
> if reLibintl_h.search (line):
> # Ignore (comment out) #include <libintl.h>
> - print "/* %s * commented out by gen_xmlpool.py */" % line
> + print("/* %s * commented out by gen_xmlpool.py */" % line)
> continue
> matchDESC = reDESC .match (line)
> matchDESC_BEGIN = reDESC_BEGIN.match (line)
> @@ -196,7 +197,7 @@ for line in template:
> assert len(descMatches) == 0
> descMatches = [matchDESC_BEGIN]
> else:
> - print line,
> + print(line, end='')
>
> if len(descMatches) > 0:
> sys.stderr.write ("Warning: unterminated description at end of file.\n")
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list