User Details
- User Since
- Oct 24 2019, 7:17 AM (205 w, 5 d)
Jul 31 2023
The change looks good to me; the other arches apparently use either bool or ParseStatus here.
Jul 21 2023
Jul 20 2023
- Rename getDispOpValue() to getImmOpValue().
- Rename FK_390_12 to FK_390_U12Imm and FK_390_20 to FK_390_S20Imm.
- Reformat.
I've added pc-relative tests, but only for PC32. For PC32DBL I tried (src-.)/2, but the common code does not recognize division as a relocatable expression, and does not let the backend to handle it either. GAS does not handle it either though, so it's probably fine:
- Emit relocations.
- Add various tests.
- Remove "imm" markup for expressions.
- Move the isExpr() logic to getDispOpValue().
- Avoid emitting empty cases entirely.
Thanks for letting me know, I'll fix this.
- s/MachineInstr/MCInst/g
Jul 19 2023
- Document the new function.
Jul 18 2023
- Move the endianness handling to the target C++ code.
- Fix the handling of multi-lit instructions on little-endian. The code used to return the start of the last lit, which is not useful.
- Pass endianness explicitly.
Jul 17 2023
Right now there doesn't seem to be a generic way to get the instruction endianness.
The best example is ARM:
Hmm, yes, this indeed does not work for RISC-V. E.g., for LUI I get:
- Add little-endian support.
- Print operand names.
- Fix a typo in the #endif comment.
Jul 14 2023
- Drop the ADDR64/GR64 patch.
- Adjust the tests to accept 0 instead of %r0 instead.
- There already are a lot of assembler tests that check that %r0 is accepted for ADDR64.
Jul 13 2023
- Rebase (the dependency CL was merged).
- New prep patch: ADDR64/GR64 cleanup.
- Move InstRSEa.
- Improve whitespace.
Fortunately not. I found this while adding named sub-operand support to SystemZ.
This depends on https://reviews.llvm.org/D155158.
Jul 10 2023
- Remove an unused variable.
- Remove an irrelevant whitespace change.
Apr 27 2023
Apr 25 2023
- Fixed an issue with copyRegSaveArea() overwriting shadow of caller's locals. The problem was that the kernel is compiled with "packed-stack", so register save areas may be smaller than 160 bytes. Since the kernel is compiled with "use-soft-float", it's enough (and also correct) to copy only 56 bytes. Now all kernel selftests pass.
- Added a test for this case.
Apr 21 2023
- (unsigned)0 -> 0u (0 doesn't work, because the overload becomes ambiguous).
- Improve matching in the testcase.
Apr 20 2023
- Add a comment to getOrInsertMsanMetadataFunction().
Apr 18 2023
- Better explain the ABI situation.
- Extend the test.
The kernel patch is currently WIP; I'm trying to get rid of false positives.
Just some examples of the findings so far:
Apr 17 2023
Apr 14 2023
I guess the intention is dropping the special case? The following patch passes regtests:
That's where the mappings normally end. Example:
$ cat /proc/self/maps 2aa00000000-2aa00002000 r--p 00000000 5e:01 668061 /usr/bin/cat 2aa00002000-2aa00006000 r-xp 00002000 5e:01 668061 /usr/bin/cat 2aa00006000-2aa00008000 r--p 00006000 5e:01 668061 /usr/bin/cat 2aa00008000-2aa00009000 r--p 00007000 5e:01 668061 /usr/bin/cat 2aa00009000-2aa0000a000 rw-p 00008000 5e:01 668061 /usr/bin/cat 2aa0000a000-2aa0002b000 rw-p 00000000 00:00 0 [heap] 3fff7500000-3fff7557000 r--p 00000000 5e:01 926342 /usr/lib/locale/C.utf8/LC_CTYPE 3fff7580000-3fff7581000 r--p 00000000 5e:01 658596 /usr/lib/locale/en_US.utf8/LC_NUMERIC 3fff7600000-3fff7878000 r--p 00000000 5e:01 658592 /usr/lib/locale/en_US.utf8/LC_COLLATE 3fff7880000-3fff7881000 r--p 00000000 5e:01 786499 /usr/lib/locale/en_US.utf8/LC_TIME 3fff7900000-3fff7901000 r--p 00000000 5e:01 786497 /usr/lib/locale/en_US.utf8/LC_MONETARY 3fff7980000-3fff7981000 r--p 00000000 5e:01 658594 /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES 3fff7a00000-3fff7a01000 r--p 00000000 5e:01 658611 /usr/lib/locale/en_US.utf8/LC_PAPER 3fff7a80000-3fff7a81000 r--p 00000000 5e:01 658595 /usr/lib/locale/en_US.utf8/LC_NAME 3fff7b00000-3fff7b01000 r--p 00000000 5e:01 786493 /usr/lib/locale/en_US.utf8/LC_ADDRESS 3fff7b80000-3fff7b81000 r--p 00000000 5e:01 786498 /usr/lib/locale/en_US.utf8/LC_TELEPHONE 3fff7c00000-3fff7c34000 r--p 00000000 5e:01 655337 /usr/lib64/libc.so.6 3fff7c34000-3fff7d6e000 r-xp 00034000 5e:01 655337 /usr/lib64/libc.so.6 3fff7d6e000-3fff7dc5000 r--p 0016e000 5e:01 655337 /usr/lib64/libc.so.6 3fff7dc5000-3fff7dc6000 ---p 001c5000 5e:01 655337 /usr/lib64/libc.so.6 3fff7dc6000-3fff7dca000 r--p 001c5000 5e:01 655337 /usr/lib64/libc.so.6 3fff7dca000-3fff7dcc000 rw-p 001c9000 5e:01 655337 /usr/lib64/libc.so.6 3fff7dcc000-3fff7dd4000 rw-p 00000000 00:00 0 3fff7e00000-3fff7e01000 r--p 00000000 5e:01 786496 /usr/lib/locale/en_US.utf8/LC_MEASUREMENT 3fff7e80000-3fff7e87000 r--s 00000000 5e:01 654146 /usr/lib64/gconv/gconv-modules.cache 3fff7f00000-3fff7f01000 r--p 00000000 5e:01 786495 /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION 3fff7f80000-3fff7f82000 r--p 00000000 5e:01 655334 /usr/lib/ld64.so.1 3fff7f82000-3fff7fa2000 r-xp 00002000 5e:01 655334 /usr/lib/ld64.so.1 3fff7fa2000-3fff7fad000 r--p 00022000 5e:01 655334 /usr/lib/ld64.so.1 3fff7fad000-3fff7faf000 r--p 0002c000 5e:01 655334 /usr/lib/ld64.so.1 3fff7faf000-3fff7fb1000 rw-p 0002e000 5e:01 655334 /usr/lib/ld64.so.1 3fff7fd3000-3fff7ffb000 rw-p 00000000 00:00 0 3fffffda000-3ffffffb000 rw-p 00000000 00:00 0 [stack] 3ffffffc000-3ffffffe000 r--p 00000000 00:00 0 [vvar] 3ffffffe000-40000000000 r-xp 00000000 00:00 0 [vdso]
A higher address should work as well. I will test 0x50000000000ULL and 0x60000000000ULL and let you know the result.
Apr 4 2023
Oh, right. I also found def U6Imm.
- Delete other U6Imm-related definitions.
This now causes: https://lab.llvm.org/buildbot/#/builders/57/builds/25796
- Drop imm32zx6.
Mar 16 2023
I can't really comment on the implementation, but the examples in the testcase look good to me.
Mar 15 2023
Mar 8 2023
- Exclude Android and BSD.
Feb 24 2023
Ping.
- Compute datasz only when necessary.
Feb 23 2023
- Do not touch memory if the version is incorrect.
- Test this.
Ping.
Feb 16 2023
Ping. Is there anything else that needs improvement?
Feb 9 2023
- Do not define the constants, the kernel provides them since v2.6.
- Rewrite the test in C.
Feb 8 2023
- Added a test with real args/argv.
Feb 7 2023
- Drop strict_string_checks.
- Extend the testcase to check a more realistic use case.
Feb 6 2023
Feb 4 2023
Feb 3 2023
Jul 22 2022
Jul 21 2022
May 12 2022
I don't think so. First of all, this is on another architecture; and then I tried running this test on both x86_64 and s390x with your change, and it succeeded in both cases for me.
Thanks for catching this! LGTM.
May 2 2022
Jul 15 2021
lldb-arm-ubuntu (https://lab.llvm.org/buildbot/#/builders/17/builds/9015) fails with:
llvm-clang-x86_64-expensive-checks-debian (https://lab.llvm.org/buildbot/#/builders/16/builds/13741) fails with: