89 Commits

Author SHA1 Message Date
Zou Nan hai
807f8768e9 Add support for dp_read message. 2013-03-04 15:54:26 +00:00
Zou Nan hai
26afe90126 Add thread_spawner message target support. 2013-03-04 15:54:26 +00:00
Keith Packard
2033aea3dd Add conditional support to assembler. Add align16 dest support to disasm.
This is working towards round-tripping mesa programs. Still need indirect
register addressing and align16 source support.
2013-03-04 15:54:26 +00:00
Keith Packard
d8057c9bcd Add math and urb units, deal with nop 2013-03-04 15:54:26 +00:00
Keith Packard
ae85b10cf0 Add disassembler (intel-gen4disasm).
Decodes most simple instructions. Still needs work on branching and send.
2013-03-04 15:54:26 +00:00
Keith Packard
082fbe8738 Support #line directives 2013-03-04 15:54:25 +00:00
Keith Packard
b81aca4948 Ensure that parse errors cause non-zero exit.
Also, avoid creating output file when a parse error occurs
2013-03-04 15:54:25 +00:00
Keith Packard
2d4d401d70 Add packed vector immediate values 2013-03-04 15:54:25 +00:00
Keith Packard
3fd6e2fc7b Add GCC warnings 2013-03-04 15:54:25 +00:00
Eric Anholt
6e4b04a807 Add accidentally forgotten rnde test. 2013-03-04 15:54:25 +00:00
Eric Anholt
713db8b220 More renaming of gen4asm -> intel-gen4asm, plus README update. 2013-03-04 15:54:25 +00:00
Eric Anholt
09bf91ea75 Update .gitignore for gen4asm -> intel-gen4asm 2013-03-04 15:54:25 +00:00
Eric Anholt
a1170c5e64 Rename package and binary to intel-gen4asm. 2013-03-04 15:54:25 +00:00
Eric Anholt
a6d95cc0ce Use 0 instead of INITIAL, as the chosen lex on my debian doesn't supply it. 2013-03-04 15:54:25 +00:00
Eric Anholt
09d8be4117 Use inttypes.h to get at uint32_t instead of sys/types.h. 2013-03-04 15:54:25 +00:00
Eric Anholt
6be3ba4157 Update the TODO with more tasks and a bit more description. 2013-03-04 15:54:25 +00:00
Eric Anholt
4ee9c3d869 Add break, cont, and halt instructions. 2013-03-04 15:54:25 +00:00
Eric Anholt
9201e4e2a0 Add tests for break, cont, and halt instructions. 2013-03-04 15:54:25 +00:00
Eric Anholt
f45ac8b2cc Fix the exitcode type for ENDIF to be D instead of UD.
Fixes the endif test.
2013-03-04 15:54:25 +00:00
Eric Anholt
7c3ba4d49d Add a test for ENDIF, revealing issues. 2013-03-04 15:54:24 +00:00
Eric Anholt
960ca001ca Fix initialization of null reg for ELSE, and set the pop count right.
This fixes the ELSE test.
2013-03-04 15:54:24 +00:00
Eric Anholt
a8eb735270 Add a test for the ELSE instruction, revealing issues. 2013-03-04 15:54:24 +00:00
Eric Anholt
1f58efa747 Add support for the WAIT instruction. 2013-03-04 15:54:24 +00:00
Eric Anholt
055be60abf Add a test for wait instruction (not yet implemented). 2013-03-04 15:54:24 +00:00
Eric Anholt
d1b8791928 Lex integers as unsigned long instead of signed int, fixing the immediate test. 2013-03-04 15:54:24 +00:00
Eric Anholt
d72f5c9828 Add a failing test for maximum ranges of UD/D immediates. 2013-03-04 15:54:24 +00:00
Eric Anholt
330903ad81 Parse negative integers for imm32s, and don't exceed the IP count width field.
This fixes the while test.
2013-03-04 15:54:24 +00:00
Eric Anholt
d538dfc462 Fix the width of the IP count field expected by the while test. 2013-03-04 15:54:24 +00:00
Eric Anholt
892d6e7ed0 Fix copy'n'paste-o in lexing of the WHILE instruction. 2013-03-04 15:54:24 +00:00
Eric Anholt
56cdee41af Initialize the structure used for setting up the ip src/dst in branches/jumps.
This fixes jmpi, if, and iff.  The while test still fails to compile.
2013-03-04 15:54:24 +00:00
Eric Anholt
8828725dc9 Add tests for jmpi, if, iff, and while, revealing issues. 2013-03-04 15:54:24 +00:00
Eric Anholt
cc865f1bc0 Explain why rnde-intsrc is expected to fail. 2013-03-04 15:54:24 +00:00
Eric Anholt
78cb82a1e2 Add some masks in comments that will help with writing tests. 2013-03-04 15:54:24 +00:00
Eric Anholt
b6fe4bbe2e Add configure.lineno to ignores. 2013-03-04 15:54:24 +00:00
Eric Anholt
863cd6a5b7 Add more unary operation tests. 2013-03-04 15:54:23 +00:00
Eric Anholt
e3cc73bec4 Start adding a test suite. 2013-03-04 15:54:23 +00:00
Eric Anholt
356ce76d44 Add a rule for the ELSE instruction.
Untested.
2013-03-04 15:54:23 +00:00
Eric Anholt
1e907c7aed Add rules for branch and jump instructions.
Untested.
2013-03-04 15:54:23 +00:00
Eric Anholt
d77712994d Add DO and ENDIF instructions. 2013-03-04 15:54:23 +00:00
Eric Anholt
74c81af3dd Fix a compiler warning by defining struct {in,}direct_reg at the top level. 2013-03-04 15:54:23 +00:00
Eric Anholt
cc05ba1d9e Fix gram.h creation, fixing dependencies and distcheck. 2013-03-04 15:54:23 +00:00
Eric Anholt
c8939edc28 Fix issues in the grammar that caused errors in bison. 2013-03-04 15:54:23 +00:00
Eric Anholt
9b40c3724a Add autotools build system, and rearrange directory layout. 2013-03-04 15:54:23 +00:00
Eric Anholt
5fbc399062 Add input/output file command line arguments. 2013-03-04 15:54:23 +00:00
Eric Anholt
2d298742bf Add support for register-indirect addressing in source operands. 2013-03-04 15:54:23 +00:00
Eric Anholt
3bcf6b29cd Add support for register-indirect access in destination registers.
This is untested.  Also, a few bits for source operand register-indirect access
sneak in with this commit.
2013-03-04 15:54:23 +00:00
Eric Anholt
2dac0a19a4 Add support for destination writemasks.
This involved changing dest operands to have their own structure like src
operands, as the destination writemask (which is align16-only) shares space
with register numbers in align1 mode.
2013-03-04 15:54:23 +00:00
Eric Anholt
de1a889fe3 Avoid shift/reduce conflict in predicate by making flagreg and subreg 1 token.
Thanks to keithp for pointing out where the conflict was.
2013-03-04 15:54:23 +00:00
Eric Anholt
0ed5d93cc2 Add support for predicate control.
This is untested on programs using predicate control, and also causes a
shift/reduce conflict.
2013-03-04 15:54:22 +00:00
Eric Anholt
6a88ada7e8 Add support for swizzle control on source operands.
This required restructuring to store source operands in a new structure rather
than being stored in instructions, as swizzle is align16-only and shares
storage with other fields for align1 mode.

These changes were not tested on real programs using swizzle.
2013-03-04 15:54:22 +00:00