aboutsummaryrefslogtreecommitdiff
path: root/i386-tok.h
Commit message (Collapse)AuthorAgeFilesLines
* x86-64-asm: Support high registers %r8 - %r15Michael Matz2016-12-151-0/+8
| | | | | | | This requires correctly handling the REX prefix. As bonus we now also support the four 8bit registers spl,bpl,sil,dil, which are decoded as ah,ch,dh,bh in non-long-mode (and require a REX prefix as well).
* x86-asm: Fix lar opcode operandsMichael Matz2016-12-151-0/+1
| | | | | | | lar can accept multiple sizes as well (wlx), like lsl. When using autosize it's important to look at the destination operand first; when it's a register that one determines the size, not the input operand.
* x86-asm: Fix register orderMichael Matz2016-12-151-1/+1
| | | | | Inserting random registers in the middle of the 8-blocks breaks register assignment.
* x86_64-asm: =m operand fixesgrischka2016-11-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | The problem was with tcctest.c: unsigned set; __asm__("btsl %1,%0" : "=m"(set) : "Ir"(20) : "cc"); when with tcc compiled with the HAVE_SELINUX option, run with tcc -run, it would use large addresses far beyond the 32bits range when tcc did not use the pc-relative mode for accessing 'set' in global data memory. In fact the assembler did not know about %rip at all. Changes: - memory operands use (%rax) not (%eax) - conversion from VT_LLOCAL: use type VT_PTR - support 'k' modifier - support %rip register - support X(%rip) pc-relative addresses The test in tcctest.c is from Michael Matz.
* x86-64-asm: Add mov[sz]xq opcodesMichael Matz2016-05-121-0/+3
| | | | This adds the zero/sign-extending opcodes with 64bit destinations.
* [x86] Fix some asm problemsMichael Matz2016-05-091-7/+3
| | | | | | | | | | | A bag of assembler fixes, to be either compatible with GAS (e.g. order of 'test' operands), accept more instructions, count correct foo{bwlq} variants on x86_64, fix modrm/sib bytes on x86_64 to not use %rip relative addressing mode, to not use invalid insns in tests/asmtest.S for x86_64. Result is that now output of GAS and of tcc on tests/asmtest.S is mostly the same.
* Revert all of my changes to directories & codingstyle.gus knight2015-07-291-0/+244
|
* Reorganize the source tree.gus knight2015-07-271-244/+0
| | | | | | | | | | * Documentation is now in "docs". * Source code is now in "src". * Misc. fixes here and there so that everything still works. I think I got everything in this commit, but I only tested this on Linux (Make) and Windows (CMake), so I might've messed something up on other platforms...
* Allow tcc to understand a setob,... opcodes as alias to seto,...seyko2015-01-061-3/+4
| | | | | | PS: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20101122/112576.html This is fix PR8686 for llvm: accepting a 'b' suffix at the end of all the setcc instructions.
* Corrected spelling mistakes in comments and stringsVincent Lefevre2014-04-071-1/+1
|
* integrate x86_64-asm.c into i386-asm.cgrischka2009-12-191-52/+81
| | | | | Also, disable 16bit support for now as it causes bugs in 32bit mode. #define I386_ASM_16 if you want it.
* fixed and added missing file for x86_64 assemblyFrederic Feret2009-11-131-0/+214