| 940 | } |
| 941 | |
| 942 | void * |
| 943 | SDL_SIMDAlloc(const size_t len) |
| 944 | { |
| 945 | const size_t alignment = SDL_SIMDGetAlignment(); |
| 946 | const size_t padding = alignment - (len % alignment); |
| 947 | const size_t padded = (padding != alignment) ? (len + padding) : len; |
| 948 | Uint8 *retval = NULL; |
| 949 | Uint8 *ptr = (Uint8 *) SDL_malloc(padded + alignment + sizeof (void *)); |
| 950 | if (ptr) { |
| 951 | /* store the actual malloc pointer right before our aligned pointer. */ |
| 952 | retval = ptr + sizeof (void *); |
| 953 | retval += alignment - (((size_t) retval) % alignment); |
| 954 | *(((void **) retval) - 1) = ptr; |
| 955 | } |
| 956 | return retval; |
| 957 | } |
| 958 | |
| 959 | void |
| 960 | SDL_SIMDFree(void *ptr) |
no test coverage detected