Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nanomips mtk/nanomips merge #39

Open
wants to merge 69 commits into
base: nanomips
Choose a base branch
from

Commits on Aug 9, 2023

  1. Add csmith-generated tests

    Change-Id: Icd1b11638dcca6ebe65db5cf44698e4038d34891
    Colin McEwan committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    0853501 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2023

  1. Revert "Add csmith-generated tests"

    This reverts commit 0853501.
    Colin McEwan committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    b99c5d1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b114c87 View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2023

  1. Configuration menu
    Copy the full SHA
    a02e638 View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2023

  1. Make sharing of debug info across compilation units optional

    Change-Id: I4d1b41912d770abf4a6cc85e163f078be1cb91f1
    Colin McEwan committed Sep 26, 2023
    Configuration menu
    Copy the full SHA
    c497461 View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2023

  1. Optimize multiple accesses to the same base with larger offsets

    ... by reusing existing offset in CodeGenPrepare.
    
    Added NanoMipsCodeGenPrepare pass witch munges constant geps into
    a form that later can be optimized by generic CodeGenPrepare.
    
    Change-Id: Ib54643a0eca9c8a2aa7cc7ce38c7b296e4ca0e6e
    Dragan Mladjenovic authored and farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    e12de29 View commit details
    Browse the repository at this point in the history
  2. Combine reg + symbol into addiu[48]

    This change makes code references not fully pc-relative.
    
    Change-Id: I829687d892b86c46ba84a24c4e93de1a21574c4c
    Dragan Mladjenovic authored and farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    6cc1661 View commit details
    Browse the repository at this point in the history
  3. Fix atomic builtins code-gen

    nanoMIPS ISA does not natively support ORI/ANDI with 16-bit immediate
    operands. As a result, ORIs are generated incorrectly in atomic
    builtin expansions with the immediate value being clipped above
    bit 11. ANDIs may be correct if using a 3-bit register encoding, else
    they end up relying on GNU assemblers instruction aliases using EXT.
    
    This replaces the potentially problematic instructions with
    natively supported nanoMIPS instructions. Some expansions are
    sub-optimal on account of preferring 32-bit instructions even
    where 16-bit encoding is possible.
    
    Change-Id: I0f40a61e4f22a58bb91b3f11a6bd01a29452614e
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    f5ff4ad View commit details
    Browse the repository at this point in the history
  4. Add NanoMips ELF machine type and header flags

    Use EM_NANOMIPS for generated nanomips-elf objects
    
    Change-Id: I4e4d759c006c3f08341fdd428de2c99d0ca200b7
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    95fe0b4 View commit details
    Browse the repository at this point in the history
  5. Register assembler, disassembler and object emitter for NanoMips

    Change-Id: Idb31afcc5aab0ad803c54ca126d4b95e69c380a9
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    82a5c45 View commit details
    Browse the repository at this point in the history
  6. Emit instructions in NanoMips byte order

    Use 64-bit doublewords to handle 48-bit instructions.
    
    Change-Id: I6f2c1cdd51d3de156d6013fc9b583392d7606ab6
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    2929392 View commit details
    Browse the repository at this point in the history
  7. Add a nanoMIPS parser variant to allow brackets in mnemonics

    Change-Id: Ib61ddb42057eaa631b5c4aa219ca76b291835702
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    0c6f3d9 View commit details
    Browse the repository at this point in the history
  8. Add NanoMips relocations

    Change-Id: I8a016e06544a07b80902652622a7ff41554ce306
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    772b793 View commit details
    Browse the repository at this point in the history
  9. Show relocation encoding comments in nanoMIPS instruction byte order

    Change-Id: I4182172fc84d9cf854cab15ebc3983ab34f804a6
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    51db031 View commit details
    Browse the repository at this point in the history
  10. Add front-end assembler directives and set ELF header flags

    Change-Id: I1404c1a21f6df683d5f1aaac36349175e89a2e23
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    85cc408 View commit details
    Browse the repository at this point in the history
  11. Refactor GPR32NM to GPR32NM

    Change-Id: Ib2bcaaee8d04aa089fd438df7c039a12ff0085f5
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    9db2fd0 View commit details
    Browse the repository at this point in the history
  12. Refactor ADDiu_NM to ADDIU_NM

    Change-Id: I11b042ff5d97834e69d3250548c2a1d2d1d03f6e
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    93a90e3 View commit details
    Browse the repository at this point in the history
  13. Refactor LEA_ADDiu_NM to LEA_ADDIU_NM

    Change-Id: I53f986f2c8e0e5f7184c4e362e3c27934f99d7ed
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    ede1c33 View commit details
    Browse the repository at this point in the history
  14. Refactor Li_NM to LI48_NM

    Change-Id: Id68922845b03f20e040ad393abaa719ffc57f5a6
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    d5829fc View commit details
    Browse the repository at this point in the history
  15. Add NanoMips register names and new register operand types

    Change-Id: Ib2483ab1ad593493c88a5e7b51f157ea1ca23a88
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    ccb0e0c View commit details
    Browse the repository at this point in the history
  16. Add encodings for NanoMips instruction pools

    Change-Id: I7d3653a2bd47e0d0bbfc93ccb1e74beea9e9e15e
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    418a397 View commit details
    Browse the repository at this point in the history
  17. Fix decoding logic for 16, 32 & 48-bit nanoMIPS instructions

    Change-Id: I8c0c4213a7afabec7308766c7050e3fba3d0b02d
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    2196ea0 View commit details
    Browse the repository at this point in the history
  18. Parse and encode arithmetic/logic instructions

    Change-Id: Ia359143068c9edbb0dfe748c3c704c0db048bd72
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    42de2b1 View commit details
    Browse the repository at this point in the history
  19. Parse and encode address calculation instructions, PC-relative loads/…

    …stores + refactor LA_NM to ADDIUPC48_NM
    
    Change-Id: I533ac72eb3656c884b4107868db66fa2e1c3cfbf
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    9354878 View commit details
    Browse the repository at this point in the history
  20. Parse and encode load/store instructions

    Change-Id: Ifde8c84908318ccd4555b3001374f3972de5d0ae
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    41fa74d View commit details
    Browse the repository at this point in the history
  21. Parse and encode control transfer instructions

    Change-Id: I073a947236a401e0f1f43d634b4c069fa9a66547
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    396ba11 View commit details
    Browse the repository at this point in the history
  22. Parse and encode MOVE variants

    Change-Id: I1f305d006273c90cb93ef8f65b626484c3859fb6
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    17ff15a View commit details
    Browse the repository at this point in the history
  23. Parse and encode SAVE/RESTORE variants

    Change-Id: Ib4aae7e3c6b44d9ff326c5c282951802f8f3548f
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    033e2b0 View commit details
    Browse the repository at this point in the history
  24. Parse and encode supervisor and control level instructions

    Change-Id: I400f6f9f20d631a59730a1829b1a97223e3288fb
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    3dbccaf View commit details
    Browse the repository at this point in the history
  25. Don't disable integrated assembler for NanoMips

    Providing an interface for useIntegrateAs over-rides
    the command-line option. Removing it allows us to control
    the use of integrated assembler from the command-line.
    
    Change-Id: I3326038c76e742dbbb906c39bd6f087db8cbbd96
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    699f91e View commit details
    Browse the repository at this point in the history
  26. Add assembler test cases and update codegen unit tests

    Change-Id: If266770310433045e0c1ac1aeb3231b4c13529fc
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    588b630 View commit details
    Browse the repository at this point in the history
  27. Add GINV* instructions

    Change-Id: I24dce47606295142ebffba781aa1ab09293063ef
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    5db226d View commit details
    Browse the repository at this point in the history
  28. Add CRC ASE support

    Change-Id: I9231ab0e866ed87927a28e9dc605d1cf5ff9c64c
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    3c59da5 View commit details
    Browse the repository at this point in the history
  29. Add TLB extension support

    Change-Id: Ic00423166d7c5ca66a1abe1326dccb9bd5e4921c
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    6a4f1d3 View commit details
    Browse the repository at this point in the history
  30. Generate relocations for label differences

    This fixes simple label differences as required for exception
    tables and debug-info, but not the diff+shift cases used by
    jumptable optimization.
    
    Change-Id: I799514cb94b17cb2436643fa44c4060c9023e8c3
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    ddb9b7b View commit details
    Browse the repository at this point in the history
  31. Fix section alignments and remove obsolete sections for NanoMIPS

    Change-Id: Ib905ba29411a4af672c088c3b86aa4a686cc00f0
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    45c957b View commit details
    Browse the repository at this point in the history
  32. Add MT ASE support

    Change-Id: I191c4a236ba923b1e166fd4595e4a8a7711c092f
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    4be6434 View commit details
    Browse the repository at this point in the history
  33. DAG pattern clean-up

    Remove DAG patterns for instructions that use a restricted register set.
    
    Change-Id: I5ce746e8927fa5520ca5cfa714e05fb08938926c
    farazs-github committed Nov 5, 2023
    Configuration menu
    Copy the full SHA
    0a2b4bb View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2023

  1. Parse and encode arithmetic/logic - follow up patch

    * Fix build warnings due to patchset 3
    * add ALIGN instruction alias
    * add TwoOperandAlias 
    * Add pattern for NOT as NOR
    * Fix 2 operand constraints for 3-register arithmetic
    * Add aliases for ADDIU as ADDU and ORI as OR
    * Missing ADDIUNEG opcode in PC-relative instruction generation
    * Limit pointer arithmetic to ADDIU[48]
    
    Change-Id: I9f64baa02081302a33344af0afdb7e652d453faf
    farazs-github committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    e7bed4f View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2023

  1. Fix LUI instruction parsing for 16-bit literals

    Change-Id: Ia91f95859cab10d780275239ffefe6a85d918875
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    a3101e1 View commit details
    Browse the repository at this point in the history
  2. Don't combine assembly with other actions for nanoMIPS

    In the absence of an instruction compression pass or mechanism,
    compression for NanoMips is mediated by the assembly matcher
    finding the shortest instructions for a base mnemonic. This
    requires the compilation actions to go through a distinct assembly
    step, similar to the -via-file-asm option.
    
    Change-Id: I6eec5bed1bff1965d58578ed8624176df2c71d4f
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    41b9cfc View commit details
    Browse the repository at this point in the history
  3. Pad with NOPs and generate ALIGN relocation for section alignment

    Change-Id: I2cdddbab8c43b725fe1964b7c2f2cd4d6e542528
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    28c7a70 View commit details
    Browse the repository at this point in the history
  4. Add pseudo instruction for ANDI

    Change-Id: I70fa500367d372b1af0c47f875b673062cc6af1c
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    b72e6c7 View commit details
    Browse the repository at this point in the history
  5. Add pseudo instruction for LoadImmediate

    Change-Id: I2fbdb326bd20cba3a8fd825dd1f7f7291c34436e
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    24fd580 View commit details
    Browse the repository at this point in the history
  6. Allow square brackets in identifiers for nanoMIPS assembler

    nanoMIPS mnemonics can have an optional architectural suffix to
    disambiguate multiple instructions which have the same mnemonic.
    As per the ISA, this suffix is enclosed in square brackets, for
    example: li[48]. The assembly parser must tokenize the suffix
    along with the mnemonic as one token.
    
    Change-Id: I240d7de279800650c6b36600a8bbfd83559ae4d5
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    83365db View commit details
    Browse the repository at this point in the history
  7. Add LA pseudo opcode to expand to LI/LAPC

    Change-Id: I2dbd5e00ce450cf966f60d836a9b42ff954925d5
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    8506e23 View commit details
    Browse the repository at this point in the history
  8. Add SUBU pseudo to subtract immediate operand

    Change-Id: If77b00b39437aeb736603f0de240613aec52594d
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    9181dbf View commit details
    Browse the repository at this point in the history
  9. Add ADDIU pseudo operator

    Change-Id: Ifa98c5c333b9f332a9c8c5aed824c3fefdeb2036
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    73cd878 View commit details
    Browse the repository at this point in the history
  10. Modify assembly parser to accept macro name after .endm

    GNU assembler supports this syntax
    
    Change-Id: Iec7fe84c7f1c50886e4edaa69f9f79489a998d72
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    21da051 View commit details
    Browse the repository at this point in the history
  11. Add MnemonicAliases for compact branches

    Change-Id: I47302764c3e4005f9e7609fdf49c85f039978ecc
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    396dfc3 View commit details
    Browse the repository at this point in the history
  12. Add NanoMips Subset as a subtarget feature

    Change-Id: If5dc329ea6fae1a80cc58223164e598a61f4c35c
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    32155d3 View commit details
    Browse the repository at this point in the history
  13. Parse and encode BEQZC/BNEZC alias forms

    Change-Id: Ib239b18b5fe2d2e91e82dd19e31d4d4a27cf0d97
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    9bf30f7 View commit details
    Browse the repository at this point in the history
  14. Roll-back change to register pressure limit for nanoMIPS registers

    The erstwhile default which assumes that the general purpose register
    set is always under high pressure leads to better allocation on
    average than the general MIPS model which allows free allocation of
    up to 28 registers.  Revert to earlier behaviour for now, to be looked
    in to along with scheduling changes.
    
    Change-Id: I2e8b04edf49552a591f4f65cd33aef652a44e88e
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    9a2da4a View commit details
    Browse the repository at this point in the history
  15. Test-suite update - follow-up patch

    Change-Id: I8fee60e432e8619a79a95c1ca0142de36f242184
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    a50480d View commit details
    Browse the repository at this point in the history
  16. Enable IntegratedAssembler by default for NanoMips

    Change-Id: I0b36e83828d5f8641ddf70fb7b1b56c3d77235ad
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    00a5e38 View commit details
    Browse the repository at this point in the history
  17. Emit section-relative relocations for .rodata

    Change-Id: Iea67daf6e020de023b8b6c76e60af75b2d2e49dd
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    f1cd862 View commit details
    Browse the repository at this point in the history
  18. Set correct AssemblerDialect for ParseInstruction

    The assembler dialect in the parser class is only set up when parsing
    assembly files.  For inline assembly, it must be obtained from
    AsmInfo in order to correctly reflect the ISA mode.
    
    Change-Id: Iea23bcbc365fe127d1f2a0ba113db6a46012286e
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    c4172d3 View commit details
    Browse the repository at this point in the history
  19. Fix PseudoLI expansion for symbol address

    Change-Id: Ic38cc32a089b7682a9cd77169e3db28ecb56667d
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    d88a275 View commit details
    Browse the repository at this point in the history
  20. Assemble calls to 32-bits by default and use BALC[16] for 16-bit calls

    Inheritance structure of ParserMatchClass determines the order of
    instructions in MatchTable.  Inherit 25-bit call operand from
    10-bit call operand in order to prioritize it.
    
    This is required for balc-stubs optimization in the linker.
    
    Change-Id: I3c96d1f61862e76936e5b444bbe6280d031ed6b1
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    826e04b View commit details
    Browse the repository at this point in the history
  21. Add R_NANOMIPS_NOTRAMP relocation and handling for R_NANOMIPS_NONE

    * R_NANOMIPS_TRAMP needed to inhibit stub optimization
    * R_NANOMIPS_NONE backend handling was missing. Added for sake of completeness.
    
    Change-Id: I3382994a7a67edc6fbe13a5ac1622934ad05da16
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    486224f View commit details
    Browse the repository at this point in the history
  22. Add support for explicit place-holder relocations

    Change-Id: Ie09b2dc1f7041c33ba67525a3e6e59144eed5af0
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    fba25ec View commit details
    Browse the repository at this point in the history
  23. Emit PC-relative relocation for immediate branch operands

    Typical branch target is represented as a symbol and the assembler
    emits a relocation that the linker resolves to the final branch
    address. For immediate operands as well, we can treat the operand as
    a target address and emit a relocation that the linker can resolve
    to reach that address. This patch brings integrated assembler's
    handling of immediate operands in line with GNU assembler.
    
    Change-Id: Ic72fe65cb5f5617b844bd0f7ef9803be0d17d28e
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    adce66b View commit details
    Browse the repository at this point in the history
  24. Add signed and shift relocations for jump table optimization

    * Add support for converting .shword and .sbyte data directives
    to R_NANOMIPS_SIGNED_[8|16] relocations.
    * Maps expressions with 1-bit right-shift to R_NANOMIPS_ASHIFTR_1
    
    Change-Id: I2294313664f8eb1cfd2052f39c86e5328b0648d5
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    de780a5 View commit details
    Browse the repository at this point in the history
  25. Parse and accept JUMPTABLE_LOAD relocation and jumptable directive

    * Parse and ignore .jumptable directive
    * Parse and ignore R_NANOMIPS_JUMPTABLE_LOAD relocation
    
    This is to facilitate the compiler to enable jump-table compression
    regardless of whether it uses integrated or external assembler. It does
    not have any impact on object encoding generated by integrated assembler,
    but allows the same generated assembly to be handled by either assemblers.
    
    Change-Id: I8f9ed12c7acf5cef11fada62f230ce92cd363750
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    af1bcf0 View commit details
    Browse the repository at this point in the history
  26. Fix register mappings for MFTR/MTTR aliases

    Native MTTR/MFTR instructions should only accept COP registers, that
    is simple numbered registers as the second operand.  Translate the
    incoming registers from the aliases to the correct format.
    
    Change-Id: I778f374feff3ea9022905314c0c2e262b1909f3c
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    13fb389 View commit details
    Browse the repository at this point in the history
  27. Make assembly generation responsive to -mno-pcrel & -mno-relax options

    * Disable linker relaxation by default to match GNU assembler
    * Disable PC-relative addressing by default to match GNU assembler
    * Don't emit directives to enable PC-relative addressing and linker
    relaxations unconditionally in assembly file. Instead check subtarget
    features to decide when these must be enabled.
    * Test-suite updates to match new defaults
    
    Change-Id: I54f32c77edd7f8ef0352bc6e87ec86ca7c4cec02
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    486662f View commit details
    Browse the repository at this point in the history
  28. Fix LTO backend for integrated assembler

    * Use cc1as as the external assembler when compiling LTO with -fintegrated-as
    
    * When using nanomips-elf-as as external assembler for LTO, pass option
    -mlegacyregs to work around different MTTR/MFTR operand constraints.
    
    Change-Id: Ic2540162637dfa76cfe243ac3ab127e259f0e9a9
    farazs-github committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    fec8707 View commit details
    Browse the repository at this point in the history

Commits on Jan 5, 2024

  1. Add MediaTek copyright notices

    Change-Id: Iec6ed1c300c3ce19299d7f8a1005f4df060573d8
    Colin McEwan committed Jan 5, 2024
    Configuration menu
    Copy the full SHA
    1dbc1a3 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2024

  1. Merge branch 'mtk/nanomips' into nanomips-mtk/nanomips-merge

    Nikola Peric authored and Nikola Peric committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    69ef6e7 View commit details
    Browse the repository at this point in the history