// The OS/K Team licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. #include #include #define _NEED_ARCH_I #include //----------------------------------------------------------------------------// IMPL_START_0(nop) { } IMPL_END; //----------------------------------------------------------------------------// IMPL_START_0(cpuid) { } IMPL_END; //----------------------------------------------------------------------------// IMPL_START_1(rand32) { v1 = (int)random(); } IMPL_OUT; IMPL_START_1(rand64) { v1 = (random() << 32) | (int)random(); } IMPL_OUT; //----------------------------------------------------------------------------// IMPL_START_1(time) { struct timeval time; gettimeofday(&time, NULL); v1 = (time.tv_sec * 1000) + (time.tv_usec / 1000); } IMPL_OUT; //----------------------------------------------------------------------------// IMPL_START_1(prn) { if (p1->mlen > 1) { log("prn warning: large access size\n"); } putchar((int)v1); } IMPL_END; //----------------------------------------------------------------------------// IMPL_START_0(clr) { rax = rbx = rcx = rdx = 0; rsx = rbi = rdi = rsi = 0; } IMPL_END; IMPL_START_0(cla) { ax0 = ax1 = ax2 = ax3 = 0; ax4 = ax5 = ax6 = ax7 = 0; } IMPL_END; //----------------------------------------------------------------------------//