Updating ESFMu to version v1.2.6
This commit is contained in:
@@ -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"
|
||||
|
Reference in New Issue
Block a user