atanasyan (Simon Atanasyan)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 6 2013, 6:15 AM (259 w, 3 d)

Recent Activity

Yesterday

atanasyan created D43682: [mips] Support 'z' inline asm constraint.
Fri, Feb 23, 8:14 AM
atanasyan added a comment to D43347: [ELF][MIPS] Support linking of PIE for MIPS.

I can verify that without this patch pie executables crash inside the FreeBSD (CheriBSD) RTLD when processing DT_MIPS_RLD_MAP and with it they work.

Fri, Feb 23, 5:20 AM · lld
atanasyan committed rLLD325890: [ELF][MIPS] Set EI_ABIVERSION flag accordingly to MIPS ABIs requirement.
[ELF][MIPS] Set EI_ABIVERSION flag accordingly to MIPS ABIs requirement
Fri, Feb 23, 3:33 AM
atanasyan committed rL325890: [ELF][MIPS] Set EI_ABIVERSION flag accordingly to MIPS ABIs requirement.
[ELF][MIPS] Set EI_ABIVERSION flag accordingly to MIPS ABIs requirement
Fri, Feb 23, 3:33 AM

Wed, Feb 21

atanasyan committed rL325721: [docs][mips] Add MIPS specific release notes for LLD 6.0.
[docs][mips] Add MIPS specific release notes for LLD 6.0
Wed, Feb 21, 1:19 PM
atanasyan closed D43575: [docs][mips] Add MIPS specific release notes for LLD 6.0.
Wed, Feb 21, 1:19 PM · lld
atanasyan created D43575: [docs][mips] Add MIPS specific release notes for LLD 6.0.
Wed, Feb 21, 7:39 AM · lld
atanasyan accepted D43573: [mips] 6.0 Release notes.

LGTM

Wed, Feb 21, 7:21 AM
atanasyan updated the diff for D43347: [ELF][MIPS] Support linking of PIE for MIPS.
  • Using a separate function to create a dynamic table entry with a relative address of a section
Wed, Feb 21, 1:46 AM · lld

Tue, Feb 20

atanasyan added a comment to D43347: [ELF][MIPS] Support linking of PIE for MIPS.

Ping?

Tue, Feb 20, 10:12 PM · lld
atanasyan updated the diff for D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.
  • Pass a pointer to relocatable symbol to the relocateOne method
  • Move handling of the less-significant bit from relocateNonAlloc and relocateAlloc to MIPS::relocateOne
Tue, Feb 20, 10:07 PM · lld
atanasyan accepted D43486: [mips] Spectre variant two mitigation for MIPSR2.

LGTM

Tue, Feb 20, 6:13 AM
atanasyan added inline comments to D43486: [mips] Spectre variant two mitigation for MIPSR2.
Tue, Feb 20, 5:19 AM
atanasyan accepted D43487: [mips] Spectre variant two mitigation for MIPSR2.

LGTM

Tue, Feb 20, 4:44 AM
atanasyan accepted D43488: [mips][lld] Spectre variant two mitigation for MIPSR2.

LGTM

Tue, Feb 20, 12:21 AM

Sat, Feb 17

atanasyan accepted D43433: [MIPS][MSA] Convert vector integer min/max opcodes to generic implementation.

Can't miss this review and add my LGTM

Sat, Feb 17, 12:45 PM

Fri, Feb 16

atanasyan updated the diff for D31528: [ELF][MIPS] Multi-GOT implementation.
  • Addressing review comments
Fri, Feb 16, 7:55 AM · lld

Thu, Feb 15

atanasyan created D43347: [ELF][MIPS] Support linking of PIE for MIPS.
Thu, Feb 15, 11:38 AM · lld

Wed, Feb 14

atanasyan updated the diff for D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.
  • Addressing review comments
Wed, Feb 14, 12:48 AM · lld

Tue, Feb 13

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

Rebased against the trunk.

Tue, Feb 13, 10:41 AM · lld
atanasyan added a comment to D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.

Ping?

Tue, Feb 13, 10:38 AM · lld

Mon, Feb 12

atanasyan added a comment to D43188: [ELF] Make .eh_frame relro if one of the inputs is SHF_WRITE.

As I said in the D43185, probably we need to implement something like _bfd_elf_eh_frame_section_offset from BFD library to convert absolute relocations into relative ones and resolve them at the time of linking.

Mon, Feb 12, 6:54 AM
atanasyan added a comment to D43185: [MIPS] Mark .eh_frame as writable for PIC output.

Probably we need to implement something like _bfd_elf_eh_frame_section_offset from BFD library to convert absolute relocations into relative ones.

Mon, Feb 12, 6:39 AM
atanasyan committed rL324885: [mips] Fix 'l' constraint handling for types smaller than 32 bits.
[mips] Fix 'l' constraint handling for types smaller than 32 bits
Mon, Feb 12, 4:25 AM
atanasyan added a comment to rL324869: [mips] Fix 'l' constraint handling for types smaller than 32 bits.

Reverted at rL324882. Sorry.

Mon, Feb 12, 3:18 AM
atanasyan committed rL324882: [mips] Revert rL324869.
[mips] Revert rL324869
Mon, Feb 12, 3:17 AM
atanasyan added a reverting commit for rL324869: [mips] Fix 'l' constraint handling for types smaller than 32 bits: rL324882: [mips] Revert rL324869.
Mon, Feb 12, 3:17 AM

Sun, Feb 11

atanasyan committed rL324869: [mips] Fix 'l' constraint handling for types smaller than 32 bits.
[mips] Fix 'l' constraint handling for types smaller than 32 bits
Sun, Feb 11, 11:53 PM

Wed, Feb 7

atanasyan added a comment to D43019: [ELF][MIPS] Add test exclusion for _gp_disp symbol.

Already fixed at rL324468.

Wed, Feb 7, 7:01 AM
atanasyan committed rL324477: [mips] Support 'y' operand code to print exact log2 of the operand.
[mips] Support 'y' operand code to print exact log2 of the operand
Wed, Feb 7, 4:38 AM
atanasyan committed rL324476: [mips] Handle 'M' and 'L' operand codes for memory operands.
[mips] Handle 'M' and 'L' operand codes for memory operands
Wed, Feb 7, 4:38 AM
atanasyan committed rL324468: [ELF][MIPS] Mark the test as required MIPS target support. NFC.
[ELF][MIPS] Mark the test as required MIPS target support. NFC
Wed, Feb 7, 2:17 AM
atanasyan committed rLLD324468: [ELF][MIPS] Mark the test as required MIPS target support. NFC.
[ELF][MIPS] Mark the test as required MIPS target support. NFC
Wed, Feb 7, 2:17 AM
atanasyan committed rLLD324467: [ELF][MIPS] Ignore incorrect version definition index for _gp_disp symbol.
[ELF][MIPS] Ignore incorrect version definition index for _gp_disp symbol
Wed, Feb 7, 2:05 AM
atanasyan committed rL324467: [ELF][MIPS] Ignore incorrect version definition index for _gp_disp symbol.
[ELF][MIPS] Ignore incorrect version definition index for _gp_disp symbol
Wed, Feb 7, 2:05 AM
This revision was not accepted when it landed; it landed in state Needs Review.
Wed, Feb 7, 2:05 AM · lld

Tue, Feb 6

atanasyan added a comment to D42486: [ELF][MIPS] Ignore incorrect version definition index for _gp_disp symbol.

Ping?

Tue, Feb 6, 8:52 AM · lld
atanasyan added a comment to D31528: [ELF][MIPS] Multi-GOT implementation.

Ping?

Tue, Feb 6, 8:52 AM · lld
atanasyan added a comment to D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.

Ping?

Tue, Feb 6, 8:52 AM · lld

Fri, Feb 2

atanasyan committed rLLD324064: [ELF][MIPS] Change format of output relocations to Elf_Rel.
[ELF][MIPS] Change format of output relocations to Elf_Rel
Fri, Feb 2, 1:52 AM
atanasyan committed rL324064: [ELF][MIPS] Change format of output relocations to Elf_Rel.
[ELF][MIPS] Change format of output relocations to Elf_Rel
Fri, Feb 2, 1:52 AM

Thu, Feb 1

atanasyan added a comment to D42790: [ELF] Check that Elf_Rela addends are always written with -r.

I originally discovered this issue because in our CHERI fork of LLD we set Config->IsRela = false when linking MIPS64 code. We do this because the FreeBSD MIPS rtld only understands Elf_Rel relocations and does not process Elf_Rela.

It sounds like FreeBSD MIPS rtld bug honestly and probably should be fixed on their side.

Thu, Feb 1, 7:18 AM

Wed, Jan 31

atanasyan updated the diff for D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.

One more variant of the patch. The if Mips code were removed from InputSectionBase::relocate and InputSection::relocateNonAlloc methods. Now the less-significant bit is configured in the getRelocTargetVA routine. I could not remove Mips-ness from DynamicSection<ELFT>::addSym and Writer<ELFT>::getEntryAddr because if an e_entry field or a dynamic table entry contains microMIPS symbol value this value should have the less-significant bit to notify loader / dynamic-linker about the symbol's type.

Wed, Jan 31, 2:27 AM · lld

Mon, Jan 29

atanasyan committed rLLD323650: [ELF][MIPS] Rename function to be consistent with other names. NFC.
[ELF][MIPS] Rename function to be consistent with other names. NFC
Mon, Jan 29, 6:03 AM
atanasyan committed rL323650: [ELF][MIPS] Rename function to be consistent with other names. NFC.
[ELF][MIPS] Rename function to be consistent with other names. NFC
Mon, Jan 29, 6:03 AM
atanasyan accepted D42537: [mips] Fix incorrect sign extension for fpowi libcall.

LGTM

Mon, Jan 29, 3:33 AM
atanasyan added a comment to D31528: [ELF][MIPS] Multi-GOT implementation.

Ping?

Mon, Jan 29, 3:09 AM · lld
atanasyan added a comment to D42486: [ELF][MIPS] Ignore incorrect version definition index for _gp_disp symbol.

Here is the bug report and the corresponding patch for GNU BFD: https://sourceware.org/ml/binutils/2018-01/msg00390.html

Mon, Jan 29, 3:09 AM · lld

Jan 25 2018

atanasyan added a comment to D31528: [ELF][MIPS] Multi-GOT implementation.

We have a chance to celebrate the first anniversary of this patch in a couple of months. Is it possible to escape this dubious holiday?

Jan 25 2018, 2:20 AM · lld
atanasyan updated the diff for D42486: [ELF][MIPS] Ignore incorrect version definition index for _gp_disp symbol.
  • Added FIXME tag to the comment
Jan 25 2018, 2:12 AM · lld

Jan 24 2018

atanasyan created D42486: [ELF][MIPS] Ignore incorrect version definition index for _gp_disp symbol.
Jan 24 2018, 8:39 AM · lld

Jan 23 2018

atanasyan updated the diff for D31528: [ELF][MIPS] Multi-GOT implementation.
  • Addressing review comments
  • Fixing some typos
Jan 23 2018, 7:11 AM · lld
atanasyan added a comment to D31528: [ELF][MIPS] Multi-GOT implementation.

I'm going to submit updated patch soon.

Jan 23 2018, 7:07 AM · lld
atanasyan accepted D42416: [Driver] Add support for mips32 and scudo.

LGTM

Jan 23 2018, 5:43 AM

Jan 22 2018

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

Rebased against the trunk and fixed calculation of a GOT entries number.

Jan 22 2018, 7:49 AM · lld

Jan 18 2018

atanasyan committed rLLD322861: [ELF][MIPS] Rename function. NFC.
[ELF][MIPS] Rename function. NFC
Jan 18 2018, 8:03 AM
atanasyan committed rLLD322860: [ELF][MIPS] Decompose relocation type for N32 / N64 earlier. NFC.
[ELF][MIPS] Decompose relocation type for N32 / N64 earlier. NFC
Jan 18 2018, 8:02 AM
atanasyan committed rL322861: [ELF][MIPS] Rename function. NFC.
[ELF][MIPS] Rename function. NFC
Jan 18 2018, 8:02 AM
atanasyan committed rL322860: [ELF][MIPS] Decompose relocation type for N32 / N64 earlier. NFC.
[ELF][MIPS] Decompose relocation type for N32 / N64 earlier. NFC
Jan 18 2018, 8:02 AM

Jan 17 2018

atanasyan added a comment to D31528: [ELF][MIPS] Multi-GOT implementation.

As this patch is essential for being able to link any of our code I did some bisection and it turns out that the tests start failing after rL320472 (D38361).

Jan 17 2018, 7:35 AM · lld

Jan 10 2018

atanasyan added inline comments to D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.
Jan 10 2018, 9:10 AM · lld

Jan 8 2018

atanasyan added a comment to D41821: [MIPS] Disassemble the 0xefefefef trap padding used by LLD.

In fact, 0xef (111011b to be precise) is a valid start for the swc3 mips instruction. Take a look at LLVM test\MC\Disassembler\Mips\mips2\valid-mips2.txt. Right now I do not know why llvm-objdump does not show a correct instruction instead of "<unknown>". By the way GNU objdump shows "swc3 $15,-4113(ra)" for "efefefef".

Jan 8 2018, 11:44 AM
atanasyan committed rLLD322014: Check test conditions more precisely. NFC.
Check test conditions more precisely. NFC
Jan 8 2018, 10:18 AM
atanasyan committed rL322014: Check test conditions more precisely. NFC.
Check test conditions more precisely. NFC
Jan 8 2018, 10:18 AM

Jan 7 2018

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

This patch is really MIPS specific. But I think the problem is actually more general. Now, for example, we have three "environment" GNU, EABI, and Musl and "HF" ABI variants for each of this environment. If we support more C libraries, we will have to add new Environment items for each supported environment+ABI pair. Something like NewLib, NewLibHF etc. The idea of this patch is to separate notions of Environment and ABI and escape growing the Environment enumeration if we need to add new ABI for existing "environment".

I agree that we could clean up a lot of crud by separating environment from ABI, but this is not what this patch is doing, at least for every other non-Mips architecture. Adding more special treatments to the already special Triple class won't help.

I also agree that ARM hasn't made that easy to begin with, and a lot of it is ARM's fault (the arch, not the company:).

Jan 7 2018, 10:26 AM

Jan 6 2018

atanasyan updated the diff for D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.
  • Updated the patch against the trunk.
Jan 6 2018, 4:41 AM · lld
atanasyan accepted D41770: Rewrite our relocation processing.

LGTM

Jan 6 2018, 1:27 AM
atanasyan accepted D41645: Move scanReloc to an auxiliary function.

LGTM

Jan 6 2018, 1:06 AM

Jan 5 2018

atanasyan accepted D41690: Simplify handling of size relocations.

LGTM

Jan 5 2018, 12:15 PM
atanasyan accepted D41681: Centralize Config->IsRela handling.

LGTM

Jan 5 2018, 12:02 PM

Jan 3 2018

atanasyan accepted D41686: Simplify mips gprel handling.

LGTM

Jan 3 2018, 4:03 AM
atanasyan accepted D41662: [mips] Correct the definition of m(f|t)c(0|2).

LGTM

Jan 3 2018, 3:39 AM

Dec 29 2017

atanasyan committed rL321566: [mips] Provide correct descriptions of asm constraints in the comments. NFC.
[mips] Provide correct descriptions of asm constraints in the comments. NFC
Dec 29 2017, 11:19 AM
atanasyan committed rL321565: [mips] Replace assert by an error message.
[mips] Replace assert by an error message
Dec 29 2017, 11:19 AM

Dec 22 2017

atanasyan committed rL321357: [mips] Add test case to check that calls to mcount follow long calls / short….
[mips] Add test case to check that calls to mcount follow long calls / short…
Dec 22 2017, 5:46 AM

Dec 21 2017

atanasyan accepted D41434: [mips] Begin reworking instruction predicates for ISAs/encodings (1/N).

LGTM

Dec 21 2017, 7:03 AM
atanasyan accepted D41285: [mips] Remove codegen support from some 16 bit instructions.

LGTM

Dec 21 2017, 5:38 AM
atanasyan committed rL321254: [llvm-readobj] Fix ambiguous call to the `printNumber`.
[llvm-readobj] Fix ambiguous call to the `printNumber`
Dec 21 2017, 2:47 AM
atanasyan committed rL321253: [llvm-readobj] Support 'GNU' style for MIPS GOT/PLT dumping.
[llvm-readobj] Support 'GNU' style for MIPS GOT/PLT dumping
Dec 21 2017, 2:26 AM

Dec 14 2017

atanasyan accepted D41183: [mips] Fix the target specific instruction verifier.

LGTM

Dec 14 2017, 5:47 AM
atanasyan added a comment to D31557: [mips][ias] Enable IAS by default for OpenBSD / FreeBSD mips64/mips64el..

Simon, FreeBSD does support n32 as others have noted. Do you have any thoughts on what is needed to allow N32 to work with IAS?
It seems like there is some support in MipsAsmParser for N32 IIRC, though it seems like the integrated assembler thinks it is compiling
as N64 when -mabi=n32 is passed to clang (my attempt to compile FreeBSD N32 with clang currently dies due to encountering 'la'
and erroring since it thinks it is using N64 where 'dla' should be used instead.

Dec 14 2017, 2:59 AM

Dec 11 2017

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

Rebased against the trunk.

Dec 11 2017, 7:41 AM · lld
atanasyan accepted D40385: [mips][compiler-rt] Provide 64bit atomic add and sub.

LGTM if you run clang-format on sanitizer_atomic_clang_mips.h.

Dec 11 2017, 2:59 AM

Dec 7 2017

atanasyan accepted D40958: [ELF][mips] Print the full file path for files with incompatible ISA.

LGTM. Thanks!

Dec 7 2017, 8:02 AM
atanasyan updated the diff for D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.

In this variant of the patch I do not modify the getSymVA function. Instead of that the less-significant bit is configured right before using in the following methods:

  • InputSection::relocateNonAlloc
  • InputSectionBase::relocateAlloc
  • DynamicSection<ELFT>::addSym
  • Writer<ELFT>::getEntryAddr
Dec 7 2017, 7:55 AM · lld

Dec 6 2017

atanasyan accepted D40788: [mips] Fix definition of 'bc' instruction.

LGTM

Dec 6 2017, 2:50 AM
atanasyan accepted D40786: [mips] Add partial support for R6 in the long branch pass.

LGTM with a few nits

Dec 6 2017, 2:47 AM

Dec 5 2017

atanasyan committed rL319776: [ELF][MIPS] Make some tests tolerant of exact sections addresses. NFC..
[ELF][MIPS] Make some tests tolerant of exact sections addresses. NFC.
Dec 5 2017, 7:33 AM
atanasyan committed rLLD319776: [ELF][MIPS] Make some tests tolerant of exact sections addresses. NFC..
[ELF][MIPS] Make some tests tolerant of exact sections addresses. NFC.
Dec 5 2017, 7:33 AM

Dec 2 2017

atanasyan committed rL319617: [llvm-readobj] Remove redundant local variables to reduce the code. NFC.
[llvm-readobj] Remove redundant local variables to reduce the code. NFC
Dec 2 2017, 5:07 AM
atanasyan committed rL319616: [llvm-readobj] Print static MIPS GOT.
[llvm-readobj] Print static MIPS GOT
Dec 2 2017, 5:07 AM
atanasyan committed rL319615: [llvm-readobj] Delete unused method argument. NFC.
[llvm-readobj] Delete unused method argument. NFC
Dec 2 2017, 5:07 AM

Dec 1 2017

atanasyan added a comment to D40646: [mips] Enable the mnemonic spell corrector.

The swe there is potentially refering to the micromips or the micromipsr6 version. swl and swr should not be on the list.

There's a number of instructions which don't have the correct predicates, so the spelling checker will deliver the wrong results, as the set of possible corrections is dependant on the feature bits that are enabled.

I have been working on a patch set to correct / rework the instruction predicates which I should start posting next week.

I think we should hold off on enabling this until the instruction predicates have been fixed.

Dec 1 2017, 3:30 AM

Nov 30 2017

atanasyan created D40646: [mips] Enable the mnemonic spell corrector.
Nov 30 2017, 4:35 AM

Nov 22 2017

atanasyan added inline comments to D40314: [mips] Use the delay slot filler to convert branches for microMIPSR6..
Nov 22 2017, 8:30 AM
atanasyan accepted D40314: [mips] Use the delay slot filler to convert branches for microMIPSR6..

LGTM with the only nit.

Nov 22 2017, 5:18 AM
atanasyan committed rL318831: [MIPS] Write PLT0 entry in case of linking N64 ABI code.
[MIPS] Write PLT0 entry in case of linking N64 ABI code
Nov 22 2017, 4:37 AM

Nov 21 2017

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

Nov 20 2017

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…
Nov 20 2017, 12:41 PM

Nov 16 2017

atanasyan created D40147: [MIPS] Handle cross-mode (regular <-> microMIPS) jumps.
Nov 16 2017, 1:24 PM · lld