Page MenuHomePhabricator

zhanjunl (Zhan Jun Liau)Email Not Verified
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 28 2016, 1:06 PM (181 w, 1 d)

Recent Activity

Aug 18 2016

zhanjunl committed rL279157: [SystemZ] Use valid base/index regs for inline asm.
[SystemZ] Use valid base/index regs for inline asm
Aug 18 2016, 2:52 PM
zhanjunl closed D23367: [SystemZ] Use valid base/index registers for memory constraints by committing rL279157: [SystemZ] Use valid base/index regs for inline asm.
Aug 18 2016, 2:52 PM

Aug 17 2016

zhanjunl added a comment to D23367: [SystemZ] Use valid base/index registers for memory constraints.

Hmm, I guess that makes sense. I'm wondering why most other targets don't have to do anything similar ...

I am a bit concerned about the ISD::Register tests. I assume this is to catch the case where no base and/or no index register are actually used; in those cases selectBDXAddr sets Base and/or Index to CurDAG->getRegister(0, VT). In those cases, leaving this as-is is fine. (Mentioning this in a comment would be good, though.) However, can there be other instances of ISD::Register? Can this e.g. be hard-coded by a user somehow? What if there is a hard-coded register, which is *not* suitable for use in addressing?

Aug 17 2016, 10:14 AM

Aug 10 2016

zhanjunl retitled D23367: [SystemZ] Use valid base/index registers for memory constraints from to [SystemZ] Use valid base/index registers for memory constraints.
Aug 10 2016, 1:12 PM
zhanjunl added inline comments to D21809: [SystemZ] Add support for the .insn directive.
Aug 10 2016, 8:50 AM

Aug 8 2016

zhanjunl committed rL278012: [SystemZ] Add support for the .insn directive.
[SystemZ] Add support for the .insn directive
Aug 8 2016, 8:21 AM
zhanjunl closed D21809: [SystemZ] Add support for the .insn directive by committing rL278012: [SystemZ] Add support for the .insn directive.
Aug 8 2016, 8:20 AM

Aug 5 2016

zhanjunl updated the diff for D21809: [SystemZ] Add support for the .insn directive.

Created a custom table with operand information to parse the different formats, which calls the same parse* routines that are used by TableGen generated code.
Removed the AsmInsn* variants and allow vector registers to be recognized when parsing registers for the insn directive.

Aug 5 2016, 2:00 PM
zhanjunl committed rL277822: [SystemZ] Add missing classes and instructions.
[SystemZ] Add missing classes and instructions
Aug 5 2016, 8:22 AM
zhanjunl closed D23179: [SystemZ] Add some missing instruction classes and instructions by committing rL277822: [SystemZ] Add missing classes and instructions.
Aug 5 2016, 8:22 AM
zhanjunl updated the diff for D23179: [SystemZ] Add some missing instruction classes and instructions.

Added a comment to describe BranchBinary.

Aug 5 2016, 8:11 AM
zhanjunl added a comment to D23179: [SystemZ] Add some missing instruction classes and instructions.
Aug 5 2016, 7:28 AM
zhanjunl updated the diff for D23179: [SystemZ] Add some missing instruction classes and instructions.

Uploaded wrong diff...

Aug 5 2016, 7:27 AM
zhanjunl updated the diff for D23179: [SystemZ] Add some missing instruction classes and instructions.

Thanks for the review Ulrich, I'll try to remember to set the right flags next time.

Aug 5 2016, 7:24 AM

Aug 4 2016

zhanjunl retitled D23179: [SystemZ] Add some missing instruction classes and instructions from to [SystemZ] Add some missing instruction classes and instructions..
Aug 4 2016, 2:45 PM

Aug 3 2016

zhanjunl added a comment to D21809: [SystemZ] Add support for the .insn directive.

Well, the mnemonic would be just ".insn", and "e" would be the first operand, decoded as fixed string. If you simply use ".insn e, ..." as an AsmParser pattern, you should see something like this in the generated SystemZGenAsmMatcher.inc file:

static const MatchEntry MatchTable0[] = {

{ 0 /* .insn */, SystemZ::AsmInsnE, Convert__U16Imm1_1, 0, { MCK_e, MCK_U16Imm }, },
{ 0 /* .insn */, SystemZ::AsmInsnRI, Convert__U32Imm1_1__AnyGRFP1_2__S16Imm1_3, 0, { MCK_ri, MCK_U32Imm, MCK_AnyGRFP, MCK_S16Imm }, },
{ 0 /* .insn */, SystemZ::AsmInsnRIE, Convert__U48Imm1_1__AnyGRFP1_2__AnyGRFP1_3__PCRel161_4, 0, { MCK_rie, MCK_U48Imm, MCK_AnyGRFP, MCK_AnyGRFP, MCK_PCRel16 }, },

where the MCK_e, MCK_ri etc are matched as string constants via matchTokenString.

Aug 3 2016, 2:46 PM
zhanjunl added a comment to D21809: [SystemZ] Add support for the .insn directive.

Could you please split off adding those other insns like PR, MVCK, ... into a separate patch? This is really an independent change that can be reviewed separately and committed ahead of the .insn patch.

Aug 3 2016, 8:30 AM

Jul 26 2016

zhanjunl added a comment to D21809: [SystemZ] Add support for the .insn directive.
Jul 26 2016, 1:49 PM
zhanjunl updated the diff for D21809: [SystemZ] Add support for the .insn directive.

Reworked this diff to use MC instructions to parse and emit the directive. This allows handling of PC-relative operands for some of these directives. Also added some new instructions so that we can test the .insn directive for all formats.

Jul 26 2016, 1:44 PM

Jul 11 2016

zhanjunl committed rL275086: [SystemZ] Recognize Load On Condition Immediate (LOCHI/LOGHI) opportunities.
[SystemZ] Recognize Load On Condition Immediate (LOCHI/LOGHI) opportunities
Jul 11 2016, 11:52 AM
zhanjunl closed D22117: [SystemZ] Recognize Load On Condition Immediate (LOCHI/LOGHI) opportunities by committing rL275086: [SystemZ] Recognize Load On Condition Immediate (LOCHI/LOGHI) opportunities.
Jul 11 2016, 11:52 AM

Jul 8 2016

zhanjunl committed rL274878: [SystemZ] Add support for the .word directive..
[SystemZ] Add support for the .word directive.
Jul 8 2016, 9:57 AM
zhanjunl closed D22142: [SystemZ] Add support for the .word directive. by committing rL274878: [SystemZ] Add support for the .word directive..
Jul 8 2016, 9:57 AM
zhanjunl committed rL274869: [SystemZ] Add support for missing instructions.
[SystemZ] Add support for missing instructions
Jul 8 2016, 9:26 AM
zhanjunl closed D22050: [SystemZ] Add support for missing instructions by committing rL274869: [SystemZ] Add support for missing instructions.
Jul 8 2016, 9:26 AM
zhanjunl retitled D22142: [SystemZ] Add support for the .word directive. from to [SystemZ] Add support for the .word directive..
Jul 8 2016, 9:08 AM
zhanjunl added a comment to D22050: [SystemZ] Add support for missing instructions.
Jul 8 2016, 9:06 AM
zhanjunl updated the diff for D22050: [SystemZ] Add support for missing instructions.

Whoops you're right, I've added ICMH to the Defs = [CC] clause.

Jul 8 2016, 9:05 AM
zhanjunl updated the diff for D22050: [SystemZ] Add support for missing instructions.

Updated the diff with fixes based on comments, to add *Pair classes, to use InstAlias, and to remove the pattern from SLA. Also added EXRL, ICMH, STMH, LMH, and added disassembler tests.

Jul 8 2016, 8:33 AM

Jul 7 2016

zhanjunl committed rL274761: [SystemZ] Fix regression when handling conditional calls.
[SystemZ] Fix regression when handling conditional calls
Jul 7 2016, 8:42 AM
zhanjunl closed D22054: [SystemZ] Fix regression when handling conditional calls by committing rL274761: [SystemZ] Fix regression when handling conditional calls.
Jul 7 2016, 8:42 AM

Jul 6 2016

zhanjunl updated the diff for D22054: [SystemZ] Fix regression when handling conditional calls.

Hmm, you're right, didn't notice there was an addOperand API for the builder. I've updated the diff to use addOperand instead of the specific variants.

Jul 6 2016, 11:57 AM
zhanjunl retitled D22054: [SystemZ] Fix regression when handling conditional calls from to [SystemZ] Fix regression when handling conditional calls.
Jul 6 2016, 10:20 AM
zhanjunl retitled D22050: [SystemZ] Add support for missing instructions from to [SystemZ] Add support for missing instructions.
Jul 6 2016, 9:19 AM

Jun 29 2016

zhanjunl added a comment to D21809: [SystemZ] Add support for the .insn directive.

Once I figure out if we're sticking with this implementation, I'll continue working on this and fix up all the comments that have been made. Thanks for the quick and thorough review guys!

Jun 29 2016, 2:34 PM
zhanjunl added a comment to D21809: [SystemZ] Add support for the .insn directive.

From my understanding, gas only supports some of the possible s390 instruction formats when using ".insn". For example, the "ri" format in the insn directive corresponds to the RI-a format, which uses an immediate field and not a relative-immediate field. Therefore, for the .insn directive specifically:

Jun 29 2016, 2:27 PM

Jun 28 2016

zhanjunl committed rL274066: [SystemZ] Use NILL instruction instead of NILF where possible.
[SystemZ] Use NILL instruction instead of NILF where possible
Jun 28 2016, 2:10 PM
zhanjunl closed D21686: Use SystemZ NILL instruction instead of NILF where possible by committing rL274066: [SystemZ] Use NILL instruction instead of NILF where possible.
Jun 28 2016, 2:10 PM
zhanjunl retitled D21809: [SystemZ] Add support for the .insn directive from to [SystemZ] Add support for .insn and .word/.short/.long/.quad directives.
Jun 28 2016, 11:46 AM

Jun 27 2016

zhanjunl committed rL273887: [SystemZ] Avoid generating 2 XOR instructions for (and (xor x, -1), y).
[SystemZ] Avoid generating 2 XOR instructions for (and (xor x, -1), y)
Jun 27 2016, 9:02 AM
zhanjunl closed D21693: [SystemZ] Avoid generating 2 XOR instructions for (and (xor x, -1), y) by committing rL273887: [SystemZ] Avoid generating 2 XOR instructions for (and (xor x, -1), y).
Jun 27 2016, 9:02 AM

Jun 22 2016

zhanjunl committed rL273433: [SystemZ] Recognize RISBG opportunities involving a truncate.
[SystemZ] Recognize RISBG opportunities involving a truncate
Jun 22 2016, 9:23 AM
zhanjunl closed D21452: [SystemZ] Recognize RISBG opportunities involving a truncate by committing rL273433: [SystemZ] Recognize RISBG opportunities involving a truncate.
Jun 22 2016, 9:23 AM

Jun 10 2016

zhanjunl committed rL272419: [SystemZ] Support Compare and Traps.
[SystemZ] Support Compare and Traps
Jun 10 2016, 1:05 PM
zhanjunl closed D21155: [SystemZ] Support Compare and Traps by committing rL272419: [SystemZ] Support Compare and Traps.
Jun 10 2016, 1:04 PM
zhanjunl updated the diff for D21155: [SystemZ] Support Compare and Traps.

I've unmarked isTerminator from the Trap instruction for now, and removed all custom insertion code. I'll bring it up in the mailing list and see if I can't find out where it should be fixed in the common code.

Jun 10 2016, 10:20 AM

Jun 9 2016

zhanjunl added a comment to D21155: [SystemZ] Support Compare and Traps.
Jun 9 2016, 11:35 AM
zhanjunl updated the diff for D21155: [SystemZ] Support Compare and Traps.

Thanks Marcin and Ulrich for the quick reviews. I've addressed most of them, and fixed the line width to 80 characters.

Jun 9 2016, 11:28 AM

Jun 8 2016

zhanjunl retitled D21155: [SystemZ] Support Compare and Traps from to [SystemZ] Support Compare and Traps.
Jun 8 2016, 2:08 PM

May 19 2016

zhanjunl committed rL270092: [SystemZ] Test commit - remove idea from README.
[SystemZ] Test commit - remove idea from README
May 19 2016, 11:36 AM

May 16 2016

zhanjunl added a comment to D20308: [SystemZ] Fix register ordering for BinaryRRF instructions.

A simple testcase is:

May 16 2016, 3:23 PM
zhanjunl retitled D20308: [SystemZ] Fix register ordering for BinaryRRF instructions from to [SystemZ] Fix register ordering for BinaryRRF instructions.
May 16 2016, 3:21 PM

May 13 2016

zhanjunl added a comment to D18732: [SystemZ] Support LRVH and STRVH opcodes.
May 13 2016, 7:36 AM
zhanjunl updated the diff for D18732: [SystemZ] Support LRVH and STRVH opcodes.

Made changes to the diff based on Ulrich's comments:

May 13 2016, 7:33 AM
zhanjunl updated the diff for D18732: [SystemZ] Support LRVH and STRVH opcodes.

Updated the patch to add context.

May 13 2016, 6:59 AM

May 12 2016

zhanjunl updated the diff for D18732: [SystemZ] Support LRVH and STRVH opcodes.

Updated Bryan's patch to use the DAG combiner to combine BSWAP+LOAD to SystemZISD::LRV and STORE+BSWAP to SystemZISD::STRV, and add patterns to match these into the correct LRVH/LRV/LRVG or STRVH/STRV/STRVG opcodes.

May 12 2016, 11:02 AM
zhanjunl commandeered D18732: [SystemZ] Support LRVH and STRVH opcodes.
May 12 2016, 10:57 AM

Apr 29 2016

zhanjunl retitled D19729: [SystemZ] Add support for additional branch extended mnemonics from to [SystemZ] Add support for additional branch extended mnemonics.
Apr 29 2016, 9:27 AM