Updating ESFMu to version v1.2.6

This commit is contained in:
Kagamiin~
2024-03-22 12:13:57 -03:00
parent d46e2ef7c8
commit 5e318dfce9

View File

@@ -1783,7 +1783,7 @@ ESFM_process_feedback(esfm_chip *chip)
eg_output = slot->in.eg_output;
// ASM optimizaions!
#if defined(__GNUC__) && defined(__x86_64__)
#if defined(__GNUC__) && defined(__x86_64__) && !defined(_ESFMU_DISABLE_ASM_OPTIMIZATIONS)
asm (
"movzbq %[wave], %%r8 \n\t"
"shll $11, %%r8d \n\t"
@@ -1848,11 +1848,14 @@ ESFM_process_feedback(esfm_chip *chip)
[exprom] "m" (exprom)
: "cc", "ax", "bx", "cx", "dx", "r8", "r9", "r10", "r11"
);
#elif defined(__GNUC__) && defined(__i386__)
#elif defined(__GNUC__) && defined(__i386__) && !defined(_ESFMU_DISABLE_ASM_OPTIMIZATIONS)
size_t logsinrom_addr = (size_t)logsinrom;
size_t exprom_addr = (size_t)exprom;
asm (
"movzbl %b[wave], %%eax \n\t"
"shll $11, %%eax \n\t"
"leal %[sinrom], %%edi \n\t"
"movl %[sinrom], %%edi \n\t"
"addl %%eax, %%edi \n\t"
"shlw $3, %[eg_out] \n\t"
"xorl %[out], %[out] \n\t"
@@ -1887,7 +1890,7 @@ ESFM_process_feedback(esfm_chip *chip)
// wave_out = exprom[level & 0xff] >> (level >> 8);
"movb %%ah, %%cl \n\t"
"movzbl %%al, %%eax \n\t"
"leal %[exprom], %[out] \n\t"
"movl %[exprom], %[out] \n\t"
"movzwl (%[out], %%eax, 2), %[out] \n\t"
"shrl %%cl, %[out] \n\t"
// if (lookup & 0x8000) wave_out = -wave_out;
@@ -1909,12 +1912,12 @@ ESFM_process_feedback(esfm_chip *chip)
: [p_off] "m" (phase_offset),
[mod_in] "m" (mod_in_shift),
[wave] "m" (waveform),
[sinrom] "m" (logsinrom),
[exprom] "m" (exprom),
[sinrom] "m" (logsinrom_addr),
[exprom] "m" (exprom_addr),
[i] "m" (iter_counter)
: "cc", "ax", "bx", "cx", "di"
);
#elif defined(__GNUC__) && defined(__arm__)
#elif defined(__GNUC__) && defined(__arm__) && !defined(_ESFMU_DISABLE_ASM_OPTIMIZATIONS)
asm (
"movs r3, #0 \n\t"
"movs %[out], #0 \n\t"