atanasyan (Simon Atanasyan)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 6 2013, 6:15 AM (245 w, 5 d)

Recent Activity

Today

atanasyan added inline comments to D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.
Tue, Nov 21, 2:37 AM · lld

Yesterday

atanasyan committed rL318691: [MIPS] Add test case to check calculation of GOT pages in case of using a….
[MIPS] Add test case to check calculation of GOT pages in case of using a…
Mon, Nov 20, 12:41 PM

Thu, Nov 16

atanasyan created D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.
Thu, Nov 16, 1:24 PM · lld
atanasyan resigned from D30169: Print unknown section header flags has hex in assembly output.
Thu, Nov 16, 1:21 PM
atanasyan resigned from D38304: [MCParser] Refactory ParseDirective to add parameter OperandVector &Operands.
Thu, Nov 16, 1:21 PM

Mon, Nov 13

atanasyan committed rL318097: [MIPS] Set STO_MIPS_MICROMIPS flag and less-significant bit for microMIPS….
[MIPS] Set STO_MIPS_MICROMIPS flag and less-significant bit for microMIPS…
Mon, Nov 13, 2:41 PM

Thu, Nov 9

atanasyan committed rL317781: [MIPS] Fix calculation of the R_MICROMIPS_LO16 / HI16 relocations.
[MIPS] Fix calculation of the R_MICROMIPS_LO16 / HI16 relocations
Thu, Nov 9, 4:10 AM
atanasyan accepted D39741: [mips] Correct microMIP's jump and add unconditional branch pseudo.

LGTM

Thu, Nov 9, 3:38 AM
atanasyan committed rL317778: [MIPS] Setup less-significant bit in a symbol value in microMIPS thunks.
[MIPS] Setup less-significant bit in a symbol value in microMIPS thunks
Thu, Nov 9, 2:42 AM
atanasyan added inline comments to D39493: [ELF] Fix DT_MIPS_LOCAL_GOTNO value when using linker scripts to change section sizes.
Thu, Nov 9, 2:35 AM

Wed, Nov 8

atanasyan committed rL317741: [MIPS] Setup less-significant bit in the .got and .got.plt entries in case of….
[MIPS] Setup less-significant bit in the .got and .got.plt entries in case of…
Wed, Nov 8, 3:34 PM

Tue, Nov 7

atanasyan accepted D39723: [mips] Guard indirect and tailcall pseudo instructions correctly..

LGTM

Tue, Nov 7, 6:46 AM

Sat, Nov 4

atanasyan accepted D39495: [mips] Add movep for microMIPS32R6 and fix microMIPS32r3 version.

LGTM

Sat, Nov 4, 2:10 AM

Fri, Nov 3

atanasyan accepted D39591: [mips] Fix PR35140.

LGTM

Fri, Nov 3, 6:19 AM

Thu, Nov 2

atanasyan added a comment to D39359: Remove MipsAbiFlagsSection class and add createMipsAbiFlagsSection function instead..

I do not know what happens (did not have a time for a detailed investigation), but an immediate reason is appearing empty .bss.rel.ro section in the linked file.

Thu, Nov 2, 8:39 AM
atanasyan accepted D39117: [mips] Match 'ins' and its' variants with C++ code.

LGTM

Thu, Nov 2, 8:24 AM

Tue, Oct 31

atanasyan accepted D39056: [mips] Use register scavenging with MSA..

LGTM with the += change.

Tue, Oct 31, 1:52 AM

Thu, Oct 26

atanasyan added inline comments to D39056: [mips] Use register scavenging with MSA..
Thu, Oct 26, 8:49 AM

Wed, Oct 25

atanasyan accepted D39288: [mips] Fix PR35071.

LGTM

Wed, Oct 25, 9:31 PM

Tue, Oct 24

atanasyan added inline comments to D39117: [mips] Match 'ins' and its' variants with C++ code.
Tue, Oct 24, 4:33 AM

Mon, Oct 23

atanasyan added a comment to D38799: [mips] Add MIPS ABI enumeration and getter function to the Triple class.

Hi Renato,

Mon, Oct 23, 2:13 PM
atanasyan added a comment to D38799: [mips] Add MIPS ABI enumeration and getter function to the Triple class.

Ping?

Mon, Oct 23, 12:15 PM
atanasyan added a comment to D38800: [mips] Add Triple::getABIVariant() to form a triple variant accordingly to the ABI.

Ping?

Mon, Oct 23, 12:15 PM
atanasyan accepted D39123: [mips] Fix (dis)assembly of abs.fmt for micromips.

LGTM

Mon, Oct 23, 10:28 AM
atanasyan added inline comments to D39117: [mips] Match 'ins' and its' variants with C++ code.
Mon, Oct 23, 10:12 AM
atanasyan added inline comments to D39056: [mips] Use register scavenging with MSA..
Mon, Oct 23, 9:11 AM

Oct 18 2017

atanasyan accepted D39003: [mips] Fix analyzeBranch to handle debug data.

LGTM

Oct 18 2017, 6:14 AM

Oct 17 2017

atanasyan committed rL316003: [mips] Provide more detailed comment. NFC.
[mips] Provide more detailed comment. NFC
Oct 17 2017, 7:39 AM

Oct 16 2017

atanasyan updated the diff for D31528: [ELF][MIPS] Multi-GOT implementation.

Rebased against the trunk.

Oct 16 2017, 5:19 AM · lld

Oct 13 2017

atanasyan accepted D38847: [mips][micromips] Fix (dis)assembly of bc1(t|f).

LGTM

Oct 13 2017, 7:56 AM

Oct 11 2017

atanasyan created D38800: [mips] Add Triple::getABIVariant() to form a triple variant accordingly to the ABI.
Oct 11 2017, 7:33 AM
atanasyan added a dependent revision for D38799: [mips] Add MIPS ABI enumeration and getter function to the Triple class: D38800: [mips] Add Triple::getABIVariant() to form a triple variant accordingly to the ABI.
Oct 11 2017, 7:33 AM
atanasyan created D38799: [mips] Add MIPS ABI enumeration and getter function to the Triple class.
Oct 11 2017, 7:31 AM
atanasyan updated the diff for D31528: [ELF][MIPS] Multi-GOT implementation.
  • Rebased against the trunk.
  • Celebrated the first half a year of the patch reviewing.
Oct 11 2017, 3:41 AM · lld

Oct 10 2017

atanasyan accepted D38620: [mips] Add support for parsing target specific flags for MIR.

LGTM

Oct 10 2017, 3:45 AM

Oct 6 2017

atanasyan accepted D38614: [ELF][MIPS] Check for overflow when writing R_MIPS_CALL16 and R_MIPS_TLS_GOTTPREL.

I think it will be impossible to write a test case for this change when multi-GOT is implemented. The only option is to implement a "debug" command line option for disabling multi-GOT. Additional flag is redundant, but my patch has mips-got-size flag. I consider to treat a zero argument of this flag as a special value.

Oct 6 2017, 7:46 AM · lld
atanasyan accepted D38400: [mips] Duplicate the reciprocal instruction definitions for FP32.

LGTM

Oct 6 2017, 5:26 AM

Oct 3 2017

atanasyan committed rL314797: [MIPS] Generate thunks for microMIPS code.
[MIPS] Generate thunks for microMIPS code
Oct 3 2017, 6:31 AM
atanasyan accepted D38454: [mips] Place certain 64 bit FPU instructions in their own decoder namespace.

LGTM

Oct 3 2017, 5:34 AM

Oct 2 2017

atanasyan accepted D38451: [mips] Correct the instruction predicates for microMIPSr3.

LGTM

Oct 2 2017, 8:15 AM
atanasyan committed rL314675: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code.
[MIPS] Fix PLT entries generation in case of linking regular and microMIPS code
Oct 2 2017, 7:58 AM
atanasyan closed D37747: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code by committing rL314675: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code.
Oct 2 2017, 7:58 AM · lld

Sep 28 2017

atanasyan accepted D38038: [mips] Enable spilling and reloading of the dsp register set..

LGTM

Sep 28 2017, 3:54 AM

Sep 27 2017

atanasyan updated the diff for D37747: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code.
  • Removed getMipsEFlags.
  • Call calcMipsEFlags from the LinkerDriver::link to initialize the Configuration::MipsEFlags field.
  • Replaced call of the getMipsEFlags by access to the Configuration::MipsEFlags in all other places.
Sep 27 2017, 10:49 PM · lld

Sep 26 2017

atanasyan committed rL314222: [mips] Use llvm-dwarfdump to simplify the test. NFC.
[mips] Use llvm-dwarfdump to simplify the test. NFC
Sep 26 2017, 3:34 PM
atanasyan added a comment to D37747: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code.

Ping?

Sep 26 2017, 3:29 PM · lld

Sep 25 2017

atanasyan accepted D38169: [mips] Remove codegen support for branch likely instructions..

LGTM

Sep 25 2017, 1:48 PM

Sep 22 2017

atanasyan accepted D38168: [mips] Accept but ignore -m(no-)branch-likely.

LGTM

Sep 22 2017, 2:19 AM

Sep 21 2017

atanasyan closed D28611: [ELF][MIPS] - Explicitly list supported relocations for MIPS target..

Superseded by commit rL313882.

Sep 21 2017, 7:46 AM
atanasyan committed rL313882: [MIPS] Explicitly list supported relocations for MIPS target. NFC.
[MIPS] Explicitly list supported relocations for MIPS target. NFC
Sep 21 2017, 7:42 AM
atanasyan committed rL313879: [mips] Implement generation of relocations "chains" used by N32 ABI.
[mips] Implement generation of relocations "chains" used by N32 ABI
Sep 21 2017, 7:06 AM
atanasyan committed rL313878: [mips] Do not pass redundant IsN64 flag to MCELFObjectTargetWriter. NFC.
[mips] Do not pass redundant IsN64 flag to MCELFObjectTargetWriter. NFC
Sep 21 2017, 7:06 AM
atanasyan closed D33512: Simplify MipsRldMapSection::writeTo.

Closed by commit rL303812.

Sep 21 2017, 7:00 AM
atanasyan closed D37749: Don't make _gp absolute.

Closed by commit rL313333.

Sep 21 2017, 6:58 AM
atanasyan abandoned D27662: [triple+llc+llvm-mc] Make triple and ABI name consistent.

The N32 ABI support will be implemented as another series of patches/changes. Like rL313160, rL313231, rL313873 ...

Sep 21 2017, 6:57 AM
atanasyan abandoned D33726: [driver][netbsd] Build and pass `-L` arguments to the linker.
Sep 21 2017, 6:52 AM
atanasyan added a comment to D37960: [mips] Fix relocation record format and ELF header for N32 ABI.

Thanks for review.

Sep 21 2017, 3:46 AM
atanasyan committed rL313873: [mips] Fix relocation record format and ELF header for N32 ABI.
[mips] Fix relocation record format and ELF header for N32 ABI
Sep 21 2017, 3:46 AM
atanasyan closed D37960: [mips] Fix relocation record format and ELF header for N32 ABI by committing rL313873: [mips] Fix relocation record format and ELF header for N32 ABI.
Sep 21 2017, 3:45 AM

Sep 20 2017

atanasyan updated the diff for D37960: [mips] Fix relocation record format and ELF header for N32 ABI.

Addressed review comment:

  • Add FIXME comment to the cpsetup.s that we implicitly check the -mno-shared case only.
  • Enable more checks in the elf_header.s and delete invalid checking for the ELF_MIPS_PIC flag.
Sep 20 2017, 11:37 PM
atanasyan committed rL313864: [MIPS] Restore checking of the disassembler output. NFC.
[MIPS] Restore checking of the disassembler output. NFC
Sep 20 2017, 9:57 PM
atanasyan committed rL313815: [mips] Fix calculation of a branch instruction offset to escape left shift of….
[mips] Fix calculation of a branch instruction offset to escape left shift of…
Sep 20 2017, 2:03 PM
atanasyan committed rL313761: [mips] Add a valid test case to check the reason of the recent build-bot….
[mips] Add a valid test case to check the reason of the recent build-bot…
Sep 20 2017, 8:59 AM
atanasyan accepted D38080: [obj2yaml] Don't crash for input files without symbol table.

LGTM

Sep 20 2017, 7:05 AM

Sep 19 2017

atanasyan updated the diff for D31528: [ELF][MIPS] Multi-GOT implementation.

Rebased against the trunk.

Sep 19 2017, 10:03 PM · lld
atanasyan added inline comments to D37747: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code.
Sep 19 2017, 9:59 PM · lld
atanasyan added inline comments to D37960: [mips] Fix relocation record format and ELF header for N32 ABI.
Sep 19 2017, 11:30 AM

Sep 17 2017

atanasyan created D37960: [mips] Fix relocation record format and ELF header for N32 ABI.
Sep 17 2017, 1:48 AM

Sep 15 2017

atanasyan updated the diff for D37747: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code.

Address review comments:

  • Removed a temporary variable in the isMicroMips function.
  • Moved MipsEFlags global variable to the Config. Calculation of its value requires iterating over all input object files so doing that each time when we call getMipsEFlags() is expensive.
Sep 15 2017, 10:55 PM · lld

Sep 14 2017

atanasyan accepted D37749: Don't make _gp absolute.

Is it still possible to assign _gp an arbitrary value using a linker script? For example, point into the middle of .sdata section?

test/ELF/mips-gp-ext.s tests that, no?

Sep 14 2017, 6:44 AM

Sep 13 2017

atanasyan committed rL313231: [mips] Recognise the triple used by Debian for MIPS n32 ABI.
[mips] Recognise the triple used by Debian for MIPS n32 ABI
Sep 13 2017, 11:51 PM
atanasyan committed rL313160: [mips] Add unitests to check parsing MIPS triples. NFC.
[mips] Add unitests to check parsing MIPS triples. NFC
Sep 13 2017, 10:37 AM
atanasyan accepted D34887: [mips] Implement the 'dext' aliases and it's disassembly alias..

LGTM

Sep 13 2017, 5:17 AM
atanasyan added a comment to D36579: [ELF] - Do not fail when set versions for linkerscript's symbol aliases.

MIPS part is LGTM.

It's interesting that _gp_disp and __gnu_local_gp have incorrect binding and visibility for so long time. I will fix that later.

Thanks for looking. It only happens for _gp_disp and __gnu_local_gp if them are assigned from script to something, I guess that is just a rare case.
Also I think that other special symbols are also affected. I did not yet check, but I think that for example __ehdr_start, __executable_start, __dso_handle
will remain hidden even if be assigned from script.

Sep 13 2017, 3:55 AM

Sep 12 2017

atanasyan added a comment to D37749: Don't make _gp absolute.

Is it still possible to assign _gp an arbitrary value using a linker script? For example, point into the middle of .sdata section?

Sep 12 2017, 2:45 PM
atanasyan committed rL313040: [MIPS] Check raw binary file content instead of disassembled code. NFC.
[MIPS] Check raw binary file content instead of disassembled code. NFC
Sep 12 2017, 9:11 AM
atanasyan added a comment to D36579: [ELF] - Do not fail when set versions for linkerscript's symbol aliases.

MIPS part is LGTM.

Sep 12 2017, 8:48 AM
atanasyan added inline comments to D34887: [mips] Implement the 'dext' aliases and it's disassembly alias..
Sep 12 2017, 8:27 AM
atanasyan created D37747: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code.
Sep 12 2017, 8:15 AM · lld
atanasyan committed rL313028: [MIPS] Initial support of microMIPS code linking.
[MIPS] Initial support of microMIPS code linking
Sep 12 2017, 6:09 AM
atanasyan closed D37335: [MIPS] Initial support of microMIPS code linking by committing rL313028: [MIPS] Initial support of microMIPS code linking.
Sep 12 2017, 6:09 AM · lld

Sep 7 2017

atanasyan committed rL312720: [mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC.
[mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC
Sep 7 2017, 5:55 AM
atanasyan closed D37519: [mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC by committing rL312720: [mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC.
Sep 7 2017, 5:55 AM

Sep 6 2017

atanasyan committed rL312701: [mips] Replace Triple::Environment check by the isGNUEnvironment() call. NFC.
[mips] Replace Triple::Environment check by the isGNUEnvironment() call. NFC
Sep 6 2017, 11:06 PM
atanasyan updated the diff for D37335: [MIPS] Initial support of microMIPS code linking.

Address review comments: added blank lines, curly brackets, replaced LLVM_FALLTHROUGH by actual code.

Sep 6 2017, 12:15 PM · lld
atanasyan created D37519: [mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC.
Sep 6 2017, 7:53 AM

Sep 5 2017

atanasyan updated the diff for D37335: [MIPS] Initial support of microMIPS code linking.
  • Added comments to explain memset calls
  • Fixed violating the strict aliasing rule.
Sep 5 2017, 10:09 PM · lld
atanasyan added inline comments to D37335: [MIPS] Initial support of microMIPS code linking.
Sep 5 2017, 3:48 PM · lld

Sep 4 2017

atanasyan updated the diff for D37335: [MIPS] Initial support of microMIPS code linking.
  • Remove needShuffling function.
  • Remove separate shuffle and unshuffle functions and move the code into the writeMicroRelocation32 routine. Now we "unsuffle" data when read implicit addend and "unshuffle" and then "shuffle" data back when writing result of microMIPS relocation.
  • Fix shuffling of 16-bit words. Do it iif target binary is little-endian.
  • Keep memset calls in writePltHeader and writePlt methods. In short, size of actual PLT entry can be less than PltEntrySize and we need to fill unused space by "nops". When we initialize PltEntrySize and PltHeaderSize fields we do not know what kind of PLT header/entry we will need to create: regular of microMIPS. These entries have different sizes. Ideally, if a PLT entry is referenced by microMIPS code only this entry should contain microMIPS code, if a PLT entry is referenced by regular code this entry should contain regular code. In a "mixed" case the PLT entry can be either microMIPS or regular, but each "cross-mode-call" has additional cost. Now LLD cannot: a) maintain PLT records with different sizes; b) record type of references (regular / microMIPS) for a PLT entry. To simplify the patch I assume that usually the most or all code have the same type regular or microMIPS. I allocate space for the largest PLT header/entry, but at the time of PLT creation I write either regular or microMIPS entries only. In the last case PLT has gaps which needs to be filled by "nops".
Sep 4 2017, 4:39 PM · lld
atanasyan committed rL312495: [MIPS] Convert template parameters to function arguments. NFC.
[MIPS] Convert template parameters to function arguments. NFC
Sep 4 2017, 9:18 AM
atanasyan committed rL312494: [MIPS] Add curly brackets to improve code readability. NFC..
[MIPS] Add curly brackets to improve code readability. NFC.
Sep 4 2017, 9:18 AM

Aug 31 2017

atanasyan updated the diff for D31528: [ELF][MIPS] Multi-GOT implementation.

Rebased against the trunk.

Aug 31 2017, 10:20 PM · lld
atanasyan created D37335: [MIPS] Initial support of microMIPS code linking.
Aug 31 2017, 7:37 AM · lld

Aug 28 2017

atanasyan committed rL311889: [MIPS] Remove unused function's argument. NFC.
[MIPS] Remove unused function's argument. NFC
Aug 28 2017, 7:42 AM

Aug 24 2017

atanasyan committed rL311711: [MIPS] Keep all code read addends in the `getImplicitAddend` function.
[MIPS] Keep all code read addends in the `getImplicitAddend` function
Aug 24 2017, 2:58 PM
atanasyan committed rL311712: [MIPS] Merge multiple functions for writing relocation result into the single….
[MIPS] Merge multiple functions for writing relocation result into the single…
Aug 24 2017, 2:58 PM
atanasyan committed rL311710: [MIPS] Remove redundant function getPcRelocAddend. NFC.
[MIPS] Remove redundant function getPcRelocAddend. NFC
Aug 24 2017, 2:58 PM
atanasyan accepted D37077: [mips][Release Notes] Release notes for 5.0.

Does it make a sense to mention support of micromips / nomicromips attributes (D33363, D33364)?

Aug 24 2017, 1:29 AM

Aug 21 2017

atanasyan committed rL311334: [mips] Remove checking of the redundant condition. NFC.
[mips] Remove checking of the redundant condition. NFC
Aug 21 2017, 7:09 AM

Aug 16 2017

atanasyan committed rL311031: [mips] Handle R_MIPS_TLS_DTPREL32/64 relocations in the RelocVisitor.
[mips] Handle R_MIPS_TLS_DTPREL32/64 relocations in the RelocVisitor
Aug 16 2017, 12:04 PM