Code() { Xbyak::Label label; cmpss(xmm0, ptr[rip + label], 0); test(dword[rip + label], 33); bt(dword[rip + label ], 3); vblendpd(xmm0, dword[rip + label], 3); vpalignr(xmm0, qword[rip + label], 4); vextractf128(dword[rip + label], ymm3, 12); vperm2i128(ymm0, ymm1, qword[rip + label], 13); vcvtps2ph(ptr[rip + label], xmm2, 44); mov(dword[rip + label], 0x1234); shl(dword[rip + label], 3); shr(dword[rip + label], 1); shld(qword[rip + label], rax, 3); imul(rax, qword[rip + label], 21); rorx(rax, qword[rip + label], 21); test(dword[rip + label], 5); pextrq(ptr[rip + label], xmm0, 3); pinsrq(xmm2, ptr[rip + label], 5); pextrw(ptr[rip + label], xmm1, 4); adc(dword[rip + label], 0x12345); bt(byte[rip + label], 0x34); btc(word[rip + label], 0x34); btr(dword[rip + label], 0x34); rcl(dword[rip + label], 4); shld(qword[rip + label], rax, 4); palignr(mm0, ptr[rip + label], 4); aeskeygenassist(xmm3, ptr[rip + label], 4); vpcmpestrm(xmm2, ptr[rip + label], 7); ret(); L(label); dq(0x123456789abcdef0ull); };
//FCS: Draw ceiling/floors //Draw a line from destination in the framebuffer to framebuffer-numPixels void hlineasm4(int32_t numPixels, int32_t shade, uint32_t i4, uint32_t i5, uint8_t *dest){ int32_t shifter = ((256-machxbits_al) & 0x1f); uint32_t source; uint8_t * texture = textureSetup; uint8_t bits = bitsSetup; shade = shade & 0xffffff00; numPixels++; if (!RENDER_DRAW_CEILING_AND_FLOOR) return; while (numPixels) { source = i5 >> shifter; source = shld(source,i4,bits); source = texture[source]; if (pixelsAllowed-- > 0) *dest = globalpalwritten[shade|source]; dest--; i5 -= asm1; i4 -= asm2; numPixels--; } }