]> Git Repo - binutils.git/blob - gas/ChangeLog
* ld/testsuite/ld-arm/attr-merge-2.attr: Update for changes in attribute output.
[binutils.git] / gas / ChangeLog
1 2010-04-15  Matthew Gretton-Dann  <[email protected]>
2
3         * config/tc-arm.c (arm_convert_symbolic_attribute): Add support for
4         new tag names in v2.08 of ARM ABI.
5         * doc/c-arm.texi: Document new tag names in ABI.
6
7 2010-04-14  Tristan Gingold  <[email protected]>
8
9         * config/tc-alpha.c: Includes vms/egps.h on EVAX.
10         (s_alpha_comm): Used new EGPS macros from egps.h
11         (RGPS__V_NO_SHIFT, EGPS__V_MASK): New local macros.
12         (s_alpha_section_word): Add comments.  Use new EGPS macros.
13         Adjust for modified bfd_vms_set_section_flags function.
14
15 2010-04-10  Alan Modra  <[email protected]>
16
17         PR gas/11486
18         * config/tc-ppc.c (ppc_elf_cons): Clear frag contents.
19
20 2010-04-09  Nick Clifton  <[email protected]>
21
22         * as.c (create_obj_attrs_section): Remove unused variable addr.
23         * listing.c (listing_listing): Remove unused variable message.
24         * read.c: Remove unnecessary register type qualifiers.
25         (s_mri): Only define/use old_flag variable if MRI_MODE_CHANGE is
26         defined.
27
28 2010-04-07  Eric B. Weddington  <[email protected]>
29
30         * config/tc-avr.c (mcu_types): Add support for atmega16a, atmega168a,
31         atmega164a, atmega165a, atmega169a, atmega169pa, atmega16hva2,
32         atmega324a, atmega324pa, atmega325a, atmega3250a, atmega328,
33         atmega329a, atmega329pa, atmega3290a, atmega48a, atmega644a,
34         atmega645a, atmega645p, atmega6450a, atmega6450p, atmega649a,
35         atmega649p, atmega6490a, atmega6490p, atmega64hve, atmega88a,
36         atmega88pa, attiny461a, attiny84a, m3000.
37         Remove support for atmega8m1, atmega8c1, atmega16c1, atmega4hvd,
38         atmega8hvd, attiny327, m3000f, m3000s, m3001b.
39         * doc/c-avr.texi: Same.
40
41 2010-04-07  Jie Zhang  <[email protected]>
42
43         * config/tc-arm.c (make_mapping_symbol): Handle the case
44         that multiple mapping symbols have the same value 0.
45
46 2010-04-07  Alan Modra  <[email protected]>
47
48         * configure: Regenerate.
49
50 2010-04-06  Nick Clifton  <[email protected]>
51
52         * po/ru.po: New Russian translation.
53         * configure.in (ALL_LINGUAS): Add ru.
54         * configure: Regenerate.
55
56 2010-03-30  H.J. Lu  <[email protected]>
57
58         PR gas/11456
59         * input-scrub.c (input_scrub_next_buffer): Use memmove instead
60         of memcpy to copy overlap memory.
61
62 2010-03-25  Joseph Myers  <[email protected]>
63
64         * Makefile.am (TARGET_CPU_CFILES): Add config/tc-tic6x.c.
65         (TARGET_CPU_HFILES): Add config/tc-tic6x.h.
66         * Makefile.in: Regenerate.
67         * NEWS: Add news entry for TI C6X support.
68         * app.c (do_scrub_chars): Handle "||^" for TI C6X.  Handle
69         TC_PREDICATE_START_CHAR and TC_PREDICATE_END_CHAR.  Keep spaces in
70         operands if TC_KEEP_OPERAND_SPACES.
71         * configure.tgt (tic6x-*-*): New.
72         * config/tc-ia64.h (TC_PREDICATE_START_CHAR,
73         TC_PREDICATE_END_CHAR): Define.
74         * config/tc-tic6x.c, config/tc-tic6x.h: New.
75         * doc/Makefile.am (CPU_DOCS): Add c-tic6x.texi.
76         * doc/Makefile.in: Regenerate.
77         * doc/all.texi (TIC6X): Define.
78         * doc/as.texinfo: Add TI C6X documentation.  Include c-tic6x.texi.
79         * doc/c-tic6x.texi: New.
80
81 2010-03-22  H.J. Lu  <[email protected]>
82
83         * config/tc-i386.c (lex_got): Use STRING_COMMA_LEN on gotrel.
84
85 2010-03-21  H.J. Lu  <[email protected]>
86
87         * config/tc-i386.c (i386_error): Replace oprand_size_mismatch
88         with operand_size_mismatch.
89         (operand_size_match): Updated.
90         (match_template): Likewise.
91
92 2010-03-21  H.J. Lu  <[email protected]>
93
94         * config/tc-i386.c (i386_error): New.
95         (_i386_insn): Replace err_msg with error.
96         (operand_size_match): Set error instead of err_msg on failure.
97         (operand_type_match): Likewise.
98         (operand_type_register_match): Likewise.
99         (VEX_check_operands): Likewise.
100         (match_template): Likewise.  Use error instead of err_msg with
101         as_bad.
102
103 2010-03-19  Jie Zhang  <[email protected]>
104
105         * config/tc-arm.c (make_mapping_symbol): Hanle the case
106         that two mapping symbols have the same value.
107
108 2010-03-18  Daniel Jacobowitz  <[email protected]>
109
110         * doc/c-arm.texi (.setfp): Correct example.
111
112 2010-03-18  Wei Guozhi  <[email protected]>
113
114         PR gas/11323
115         * config/tc-arm.c (reloc_names): New relocation names.
116         (md_apply_fix): New case for BFD_RELOC_ARM_GOT_PREL.
117         (tc_gen_reloc): New case for BFD_RELOC_ARM_GOT_PREL.
118         * doc/c-arm.texi (ARM-Relocations): Document the new relocation.
119
120 2010-03-15  Thomas Schwinge  <[email protected]>
121
122         * dw2gencfi.c (output_cie): Consider emitting the S augmentation in all
123         cases, and not only for .eh_frame.
124
125         * dw2gencfi.c (output_cie): Make it more explicit which code paths
126         belong to .eh_frame only.
127
128 2010-03-13  Segher Boessenkool  <[email protected]>
129
130         * config/tc-v850.c (v850_insert_operand): Handle out-of-range
131         assembler constants on 64-bit hosts.
132
133 2010-03-10  Mike Frysinger  <[email protected]>
134
135         * bfin-defs.h, bfin-lex.l, bfin-parse.y, tc-bfin.c, tc-bfin.h:
136         Strip trailing whitespace.
137
138 2010-03-10  Mike Frysinger  <[email protected]>
139
140         * doc/c-bfin.texi (-mcpu): Add bf504 and bf506.
141         * config/tc-bfin.c (bfin_cpu_type): Add BFIN_CPU_BF504 and
142         BFIN_CPU_BF506.
143         (bfin_cpus[]): Add 0.0 for bf504 and bf506.
144
145 2010-03-10  Jie Zhang  <[email protected]>
146
147         * doc/as.texinfo: Add Blackfin options.
148         * doc/c-bfin.texi: Document -mfdpic, -mno-fdpic and -mnopic.
149         * config/tc-bfin.c (md_show_usage): Show usage for all
150         Blackfin specific options.
151
152 2010-03-09  Alan Modra  <[email protected]>
153
154         PR gas/11356
155         * listing.c (listing_newline): Correct backslash quote logic.
156
157 2010-03-08  Rainer Orth  <[email protected]>
158
159         * config/tc-i386.h [TE_SOLARIS] (ELF_TARGET_FORMAT): Define.
160         (ELF_TARGET_FORMAT64): Define.
161
162 2010-03-05  Paul Brook  <[email protected]>
163
164         * config/tc-arm.c (arm_cpu_option_table): Add cortex-m4.
165
166 2010-03-02  Andrew Stubbs  <[email protected]>
167
168         * config/tc-sh.c (get_specific): Move overflow checking code to avoid
169         reading uninitialized data.
170
171 2010-03-01  Tristan Gingold  <[email protected]>
172
173         * config/tc-score7.c (s7_frag_check): Add ATTRIBUTE_UNUSED.
174
175 2010-02-26  Doug Evans  <[email protected]>
176
177         * configure.tgt: Fix mep cpu case.
178
179 2010-02-26  Jie Zhang  <[email protected]>
180
181         * config/tc-arm.c (do_t_strexd): Remove
182         operand[1] != operand[2] contraint.
183
184 2010-02-26  Jie Zhang  <[email protected]>
185
186         * config/tc-arm.c (neon_select_shape): No need to match
187         the remaining operands in the shape when one operand does
188         not match.
189
190 2010-02-26  Jie Zhang  <[email protected]>
191
192         * config/tc-arm.c (do_neon_ld_st_interleave): Reject bad
193         alignment.
194
195 2010-02-25  Doug Evans  <[email protected]>
196
197         * cgen.c: Whitespace fixes.
198         (weak_operand_overflow_check): Formatting fix.
199
200 2010-02-25  H.J. Lu  <[email protected]>
201
202         * config/tc-i386.c (match_template): Update error messages.
203
204 2010-02-25  H.J. Lu  <[email protected]>
205
206         * config/tc-i386.c (_i386_insn): Add err_msg.
207         (operand_size_match): Set err_msg on failure.
208         (operand_type_match): Likewise.
209         (operand_type_register_match): Likewise.
210         (VEX_check_operands): Likewise.
211         (match_template): Likewise.  Use i.err_msg with as_bad.
212
213 2010-02-25  Wu Zhangjin <[email protected]>
214
215         * config/tc-mips.c (mips_fix_loongson2f, mips_fix_loongson2f_nop,
216         mips_fix_loongson2f_jump): New variables.
217         (md_longopts): Add New options -mfix-loongson2f-nop/jump,
218         -mno-fix-loongson2f-nop/jump.
219         (md_parse_option): Initialize variables via above options.
220         (options): New enums for the above options.
221         (md_begin): Initialize nop_insn from LOONGSON2F_NOP_INSN.
222         (fix_loongson2f, fix_loongson2f_nop, fix_loongson2f_jump):
223         New functions.
224         (append_insn): call fix_loongson2f().
225         (mips_handle_align): Replace the implicit nops.
226         * config/tc-mips.h (MAX_MEM_FOR_RS_ALIGN_CODE): Modified
227         for the new mips_handle_align().
228         * doc/c-mips.texi: Document the new options.
229
230 2010-02-23  Daniel Gutson  <[email protected]>
231
232         * config/tc-arm.c (do_rd_rm_rn): Added warning
233         for obsolete insns.
234
235 2010-02-23  Andrew Zabolotny  <[email protected]>
236
237         PR binutils/11297
238         * config/tc-avr.c (md_apply_fix): Handle BFD_RELOC_8.
239         (avr_cons_fix_new): Handle fixups of a single byte.
240
241 2010-02-22  Matthew Gretton-Dann  <[email protected]>
242
243         PR 9861
244         * config/tc-arm.c (CPU_DEFAULT): Do not define based upon build
245         compiler's predefines.
246
247 2010-02-19  Alan Modra  <[email protected]>
248
249         * configure.tgt: Whiltespace.  Sort moxie entry.
250
251 2010-02-18  Matthew Gretton-Dann  <[email protected]>
252
253         * config/tc-arm.c (arm_convert_symbolic_attribute): Add Tag_DIV_use.
254         * doc/c-arm.texi: Likewise.
255
256 2010-02-12  Daniel Gutson <[email protected]>
257
258         * config/tc-arm.c (asm_opcode): operands type
259         change.
260         (BAD_PC_ADDRESSING): New macro message.
261         (BAD_PC_WRITEBACK): Likewise.
262         (MIX_ARM_THUMB_OPERANDS): New macro.
263         (operand_parse_code): Added enum values.
264         (parse_operands): Added thumb/arm distinction,
265         plus new enum values handling.
266         (encode_arm_addr_mode_2): Validations enhanced.
267         (encode_arm_addr_mode_3): Likewise.
268         (do_rm_rd_rn): Likewise.
269         (encode_thumb32_addr_mode): Likewise.
270         (do_t_ldrex): Likewise.
271         (do_t_ldst): Likewise.
272         (do_t_strex): Likewise.
273         (md_assemble): Call parse_operands with
274         a new parameter.
275         (OPS_1): New macro.
276         (OPS_2): Likewise.
277         (OPS_3): Likewise.
278         (OPS_4): Likewise.
279         (OPS_5): Likewise.
280         (OPS_6): Likewise.
281         (insns): Updated insns operands.
282
283 2010-02-12  Tristan Gingold  <[email protected]>
284             Douglas B Rupp  <[email protected]>
285
286         * config/tc-ia64.c (enum reloc_func): Add FUNC_SLOTCOUNT_RELOC.
287         (DUMMY_RELOC_IA64_SLOTCOUNT): Added.
288         (pseudo_func): Add an entry for slotcount.
289         (md_begin): Initialize slotcount pseudo symbol.
290         (ia64_parse_name): Handle @slotcount parameter.
291         (ia64_gen_real_reloc_type): Handle slotcount.
292         (md_apply_fix): Ditto.
293         * doc/c-ia64.texi (IA-64-Relocs): Document @slotcount.
294
295 2010-02-11  Sterling Augustine  <[email protected]>
296
297         * config/tc-xtensa.c (istack_init): Don't call memset.
298
299 2010-02-11  Sterling Augustine  <[email protected]>
300
301         * config/tc-xtensa.c (cache_literal_section): Handle prefixes as
302         well as suffixes.
303
304 2010-02-11  Sterling Augustine  <[email protected]>
305
306         * config/tc-xtensa.c (xtensa_find_unaligned_loops): Rewrite.
307
308 2010-02-11  H.J. Lu  <[email protected]>
309
310         * config/tc-i386.c (build_modrm_byte): Reformat.
311
312 2010-02-11  H.J. Lu  <[email protected]>
313
314         * config/tc-i386.c: Update copyright.
315
316 2010-02-10  Quentin Neill  <[email protected]>
317             Sebastian Pop  <[email protected]>
318
319         * config/tc-i386.c (vec_imm4) New operand type.
320         (fits_in_imm4): New.
321         (VEX_check_operands): New.
322         (check_reverse): Call VEX_check_operands.
323         (build_modrm_byte): Reintroduce code for 5
324         operand insns.  Fix whitespace.
325
326 2010-02-10  Richard Sandiford  <[email protected]>
327
328         * config/tc-ppc.c (md_show_usage): Add -mpwr4, -mpwr5, -mpwr5x,
329         -mpwr6 and -mpwr7.
330
331 2010-02-09  Sterling Augustine  <[email protected]>
332
333         * config/tc-xtensa.c (RELAXED_LOOP_INSN_BYTES): New.
334         (next_frag_pre_opcode_bytes): Use RELAXED_LOOP_INSN_BYTES.
335         (xtensa_mark_zcl_first_insns): Rewrite to handle corner case.
336
337 2010-02-08  Christophe Lyon  <[email protected]>
338
339         * config/tc-arm.c (md_pcrel_from_section): Keep base to zero for
340         non-local branches (BFD_RELOC_THUMB_PCREL_BRANCH23,
341         BFD_RELOC_THUMB_PCREL_BLX, BFD_RELOC_ARM_PCREL_BLX,
342         BFD_RELOC_ARM_PCREL_CALL)
343
344 2010-02-08  Sterling Augustine  <[email protected]>
345
346         * config/tc-xtensa.c (frag_format_size): Generalize logic to
347         handle more instruction sizes and fetch widths.
348         (branch_align_power): Likewise.
349         (text_align_power): Likewise.
350         (bytes_to_stretch): Likewise.
351
352 2010-02-08  Philipp Tomsich  <[email protected]>
353
354         * config/tc-ppc.c (md_show_usage): Mention -mtitan.  Don't use tabs.
355         (ppc_mach): Handle titan.
356         * doc/c-ppc.texi: Mention -mtitan.
357
358 2010-02-05  Sterling Augustine  <[email protected]>
359
360         * config/tc-xtensa.c (UNREACHABLE_MAX_WIDTH): Delete and
361         replace with...
362         (xtensa_fetch_width) ...this.
363
364 2010-02-05  Joseph Myers  <[email protected]>
365
366         * Makefile.am (CPU_TYPES, OBJ_FORMATS, CPU_OBJ_VALID,
367         MULTI_CPU_TYPES, MULTI_CPU_OBJ_VALID): Remove.
368         * Makefile.in: Regenerate.
369
370 2010-02-03  Quentin Neill  <[email protected]>
371
372         * config/tc-i386.c (cpu_arch): Change amdfam15 to bdver1.
373         (i386_align_code): Rename  PROCESSOR_AMDFAM15 to PROCESSOR_BDVER1.
374         * config/tc-i386.h (processor_type): Same.
375         * doc/c-i386.texi: Change amdfam15 to bdver1.
376
377 2010-01-29  Nick Clifton  <[email protected]>
378
379         PR 11136
380         * config/tc-arm.c (neon_check_type): Handle a neon_shape value of
381         NS_NULL.
382
383 2010-01-27  Dave Korn  <[email protected]>
384
385         * NEWS: Mention new feature.
386         * config/obj-coff.c (obj_coff_section): Accept digits and use
387         to override default section alignment power if specified.
388         * doc/as.texinfo (.section directive): Update documentation.
389
390 2010-01-27  H.J. Lu  <[email protected]>
391
392         * config/tc-i386.c (avxscalar): New.
393         (OPTION_MAVXSCALAR): Likewise.
394         (build_vex_prefix): Select vector_length for scalar instructions
395         based on avxscalar.
396         (md_longopts): Add OPTION_MAVXSCALAR.
397         (md_parse_option): Handle OPTION_MAVXSCALAR.
398         (md_show_usage): Add -mavxscalar=.
399
400         * doc/c-i386.texi: Document -mavxscalar=.
401
402 2010-01-24  H.J. Lu  <[email protected]>
403
404         * config/tc-i386.c (build_vex_prefix): Set i.vex.bytes[0] to
405         0xc4 individually.
406
407 2010-01-23  Richard Sandiford  <[email protected]>
408
409         * write.h (fix_at_start): Declare.
410         * write.c (fix_new_internal): Add at_beginning parameter.
411         Use it instead of REVERSE_SORT_RELOCS.  Fix the handling of
412         seg_fix_tailP for the at_beginning/REVERSE_SORT_RELOCS case.
413         (fix_new, fix_new_exp): Update accordingly.
414         (fix_at_start): New function.
415         * config/tc-ppc.c (md_pseudo_table): Add .ref to the OBJ_XCOFF section.
416         (ppc_ref): New function, for OBJ_XCOFF.
417         (md_apply_fix): Handle BFD_RELOC_NONE for OBJ_XCOFF.
418         * config/te-i386aix.h (REVERSE_SORT_RELOCS): Remove #undef.
419
420 2010-01-21  Rainer Orth  <[email protected]>
421
422         * config/te-solaris.h (DWARF2_EH_FRAME_READ_ONLY): Make read-only
423         on 64-bit Solaris/x86.
424         Include obj-format.h earlier.
425
426 2010-01-21  Andreas Krebbel  <[email protected]>
427
428         * config/tc-s390.c (s390_elf_final_processing): New function.
429         * config/tc-s390.h (elf_tc_final_processing): New macro definition.
430         (s390_elf_final_processing): Added prototype.
431
432
433 2010-01-20  Nick Clifton  <[email protected]>
434
435         PR 11109
436         * config/tc-arm.c (do_neon_cvt): Rename to do_neon_cvt_1.  Add
437         code to handle round-to-zero for VCVT conversions.
438         (do_neon_cvt): New.  Call do_neon_cvt_1.
439         (do_neon_cvtr): New.  Call do_neon_cvt_1.
440         (insns): Use do_neon_cvt for VCVT insn and do_neon_cvtr for VCVTR
441         insn.
442
443 2010-01-18  Tristan Gingold  <[email protected]>
444
445         * config/tc-ia64.c (ia64_vms_note): Generate 24 bytes note headers.
446
447 2010-01-15  Sebastian Pop  <[email protected]>
448
449         * config/tc-i386.c (md_assemble): Before accessing the IMM field
450         check that it's not an XOP insn.
451
452 2010-01-14  Jie Zhang  <[email protected]>
453
454         * config/bfin-aux.h: Remove argument names in function
455         declarations.
456         * config/bfin-lex.l (parse_int): Fix shadowed variable name
457         warning.
458         * config/bfin-parse.y (value_match): Remove argument names
459         in declaration.
460         (notethat): Likewise.
461         (yyerror): Likewise.
462
463 2010-01-13  Daniel Jacobowitz  <[email protected]>
464
465         * config/tc-arm.c (do_t_nop): Correct check for Thumb-2 NOP.
466
467 2010-01-13  Nick Clifton  <[email protected]>
468
469         * config/tc-h8300.c (h8300_elf_section): New function - issue a
470         warning message if a new section is created without setting any
471         attributes for it.
472         (md_pseudo_table): Intercept section creation pseudos.
473         (md_pcrel_from): Replace abort with an error message.
474         * config/obj-elf.c (obj_elf_section_name): Export this function.
475         * config/obj-elf.h (obj_elf_section_name): Prototype.
476
477 2010-01-12  Alan Modra  <[email protected]>
478
479         PR 11122
480         * listing.c (print_source): Add one to line number.
481
482 2010-01-09  Ralf Wildenhues  <[email protected]>
483
484         * Makefile.in: Regenerate.
485         * configure: Regenerate.
486         * doc/Makefile.in: Regenerate.
487
488 2010-01-08  H.J. Lu  <[email protected]>
489
490         * version.c (parse_args): Change to "Copyright 2010".
491
492 2010-01-06  Quentin Neill  <[email protected]>
493
494         * config/tc-i386.c (cpu_arch): Add amdfam15.
495         (i386_align_code): Add PROCESSOR_AMDFAM15 cases.
496         * config/tc-i386.h (processor_type): Add PROCESSOR_AMDFAM15.
497         * doc/c-i386.texi: Add amdfam15.
498
499 2010-01-04  Daniel Gutson  <[email protected]>
500
501         * config/tc-arm.c (do_neon_logic): Accept imm value
502         in the third operand too.
503         (operand_parse_code): OP_RNDQ_IMVNb renamed to
504         OP_RNDQ_Ibig.
505         (parse_operands): OP_NILO case removed, applied renaming.
506         (insns): Neon shape changed for some logic instructions.
507
508 2010-01-04  Daniel Gutson  <[email protected]>
509
510         * config/tc-arm.c (do_neon_ldx_stx): Added
511         validation for vector load/store insns.
512
513 2010-01-04  Edmar Wienskoski  <[email protected]>
514
515         * config/tc-ppc.c (md_show_usage): Document -me500mc64.
516
517 2010-01-03  Daniel Gutson  <[email protected]>
518
519         * config/tc-arm.c (struct arm_it): New flag 'is_neon'.
520         (NEON_ENC_*): Macros renamed to _NEON_ENC_*.
521         (NEON_ENCODE): New macro.
522         (check_neon_suffixes): New macro.
523         (do_vfp_cond_or_thumb): Set the 'is_neon' flag.
524         (do_vfp_nsyn_opcode): Likewise.
525         (do_vfp_nsyn_nmul): Use the new 'NEON_ENCODE' macro.
526         (do_vfp_nsyn_cmp): Likewise.
527         (do_neon_shl_imm): Likewise.
528         (do_neon_qshl_imm): Likewise.
529         (neon_dyadic_misc): Likewise.
530         (do_neon_mac_maybe_scalar): Likewise.
531         (do_neon_qdmulh): Likewise.
532         (do_neon_qmovn): Likewise.
533         (do_neon_qmovun): Likewise.
534         (do_neon_movn): Likewise.
535         (neon_mac_reg_scalar_long): Likewise.
536         (do_neon_vmull): Likewise.
537         (do_neon_trn): Likewise.
538         (do_neon_ldx_stx): Likewise.
539         (neon_dp_fixup): Changed signature and set the flag.
540         (neon_three_same): Call the above with new signature.
541         (neon_two_same): Likewise.
542         (neon_imm_shift): Likewise.
543         (neon_mul_mac): Likewise.
544         (do_neon_abs_neg): Likewise.
545         (neon_mixed_length): Likewise.
546         (do_neon_ext): Likewise.
547         (do_neon_mov): Likewise.
548         (do_neon_tbl_tbx): Likewise.
549         (do_neon_logic): Likewise, and use the new 'NEON_ENCODE' macro.
550         (neon_compare): Likewise.
551         (do_neon_shll): Likewise.
552         (do_neon_cvt): Likewise.
553         (do_neon_mvn): Likewise.
554         (do_neon_dup): Likewise.
555         (md_assemble): Call check_neon_suffixes ().
556
557 For older changes see ChangeLog-2009
558 \f
559 Local Variables:
560 mode: change-log
561 left-margin: 8
562 fill-column: 74
563 version-control: never
564 End:
This page took 0.05642 seconds and 4 git commands to generate.