Overview
Comment: | OFMatrix4x4: Add #pragma GCC target("3dnow") |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
fa3c89f802a12f2416fe37f5d2a0a4cd |
User & Date: | js on 2023-10-31 22:14:33 |
Other Links: | manifest | tags |
Context
2023-10-31
| ||
22:27 | Move x86/ELF assembly back to AT&T syntax check-in: 4c866f0320 user: js tags: trunk | |
22:14 | OFMatrix4x4: Add #pragma GCC target("3dnow") check-in: fa3c89f802 user: js tags: trunk | |
20:38 | Move AMD64/ELF assembly back to AT&T syntax check-in: da613d0cb5 user: js tags: trunk | |
Changes
Modified src/OFMatrix4x4.m from [b494f24572] to [240d8b02dd].
︙ | ︙ | |||
26 27 28 29 30 31 32 33 34 35 36 37 38 39 | { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 } }; @implementation OFMatrix4x4 #if defined(OF_AMD64) || defined(OF_X86) static void multiplyWithMatrix_3DNow(OFMatrix4x4 *self, SEL _cmd, OFMatrix4x4 *matrix) { float result[4][4]; for (uint_fast8_t i = 0; i < 4; i++) { for (uint_fast8_t j = 0; j < 4; j++) { | > > > > | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 } }; @implementation OFMatrix4x4 #if defined(OF_AMD64) || defined(OF_X86) # ifndef __clang__ # pragma GCC push_options # pragma GCC target("3dnow") # endif static void multiplyWithMatrix_3DNow(OFMatrix4x4 *self, SEL _cmd, OFMatrix4x4 *matrix) { float result[4][4]; for (uint_fast8_t i = 0; i < 4; i++) { for (uint_fast8_t j = 0; j < 4; j++) { |
︙ | ︙ | |||
113 114 115 116 117 118 119 120 121 122 123 124 125 126 | "femms" :: "r"(&result), "r"(&self->_values), "r"(&vector) : "mm0", "mm1", "mm2", "mm3", "mm4", "memory" ); return result; } + (void)initialize { if (self != [OFMatrix4x4 class]) return; if ([OFSystemInfo supports3DNow]) { | > > > | 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | "femms" :: "r"(&result), "r"(&self->_values), "r"(&vector) : "mm0", "mm1", "mm2", "mm3", "mm4", "memory" ); return result; } # ifndef __clang__ # pragma GCC pop_options # endif + (void)initialize { if (self != [OFMatrix4x4 class]) return; if ([OFSystemInfo supports3DNow]) { |
︙ | ︙ |