Hi all,

I would like to add SSE opcodes to TCC assembler,
is it enough to add the opcodes at the end of "X86_64-asm.h" ?

I added this as a test, to load and add two (unaligned) vectors :

        DEF_ASM_OP2(movups, 0x0f10, 0, OPC_MODRM, OPT_EA | OPT_REG32, OPT_SSE )
ALT(DEF_ASM_OP2(movups, 0x0f11, 0, OPC_MODRM, OPT_SSE, OPT_EA | OPT_REG32 ))
        DEF_ASM_OP2(addps, 0x0f58, 0, OPC_MODRM, OPT_EA | OPT_SSE, OPT_SSE )

That I tested with :

asm (
    "movups %0, %%xmm0;"
    "movups %1, %%xmm1;"
    "addps %%xmm1, %%xmm0;"
    "movups %%xmm0, %2\"
    :
    : "g" (v1), "g" (v2), "g" (v3)
);

This exemple seems to work, but is it enough ?

Bests,
Anaël.


> On Thu, Sep 10, 2015 at 12:32:00PM +0200, Anaël Seghezzi wrote:
> > Hi all,
> > 
> > what would it take to add SSE2 opcodes to tcc assembler, at least
> for x64 ?
> > 
> > I'm working on a small interactive sandbox to play with C in
> realtime to create small demos/games with graphics and sounds,
> > a sort of mix of "ShaderToy" and "Pico8". I'm using TCC and it's
> all very effective, it could just gain some speed with a bit of SSE2
> instructions.

_______________________________________________
Tinycc-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to