mirror of
https://github.com/memtest86plus/memtest86plus.git
synced 2024-11-26 17:40:16 -06:00
Reduce padding and relocations (#355)
* Optimize the JEP106 list by using __attribute__((packed)) to remove padding. The x86 & x86_64 series support unaligned accesses just fine, after all, and this is not remotely a hot path. * Optimize several string-related constructs by switching to fixed-length char arrays, which avoids pointers + relocations. * app/interrupt.c: array of different-length strings, but most of those are lengthy enough for this to be a clear win, especially on x86_64; * system/usbhcd.c: array of same-length strings; * tests/tests.h: array of structs containing same-length strings. * Reduce the size of the list of tests by using a narrower type for the cpu mode, which reduces padding.
This commit is contained in:
parent
34eb8186fd
commit
9b9c65b968
@ -56,7 +56,7 @@
|
|||||||
#define ADR_DIGITS "8"
|
#define ADR_DIGITS "8"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const char *codes[] = {
|
static const char codes[][13] = {
|
||||||
"Divide by 0",
|
"Divide by 0",
|
||||||
"Debug",
|
"Debug",
|
||||||
"NMI",
|
"NMI",
|
||||||
|
@ -10,12 +10,12 @@
|
|||||||
#define JEP106_CNT \
|
#define JEP106_CNT \
|
||||||
sizeof(jep106)/sizeof(jep106[0])
|
sizeof(jep106)/sizeof(jep106[0])
|
||||||
|
|
||||||
struct spd_jedec_manufacturer {
|
struct __attribute__((packed)) spd_jedec_manufacturer {
|
||||||
uint16_t jedec_code;
|
uint16_t jedec_code;
|
||||||
char *name;
|
char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct spd_jedec_manufacturer jep106[] = {
|
static const struct __attribute__((packed)) spd_jedec_manufacturer jep106[] = {
|
||||||
{ 0x0001, "AMD" },
|
{ 0x0001, "AMD" },
|
||||||
// { 0x0002, "AMI" },
|
// { 0x0002, "AMI" },
|
||||||
// { 0x0003, "Fairchild" },
|
// { 0x0003, "Fairchild" },
|
||||||
|
@ -56,7 +56,7 @@ typedef struct {
|
|||||||
// Private Variables
|
// Private Variables
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
static const char *hci_name[MAX_HCI_TYPE] = { "UHCI", "OHCI", "EHCI", "XHCI" };
|
static const char hci_name[MAX_HCI_TYPE][5] = { "UHCI", "OHCI", "EHCI", "XHCI" };
|
||||||
|
|
||||||
static const hcd_methods_t methods = {
|
static const hcd_methods_t methods = {
|
||||||
.reset_root_hub_port = NULL,
|
.reset_root_hub_port = NULL,
|
||||||
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
bool enabled;
|
bool enabled;
|
||||||
cpu_mode_t cpu_mode;
|
uint8_t cpu_mode;
|
||||||
int stages;
|
int stages;
|
||||||
int iterations;
|
int iterations;
|
||||||
int errors;
|
int errors;
|
||||||
char *description;
|
char description[40];
|
||||||
} test_pattern_t;
|
} test_pattern_t;
|
||||||
|
|
||||||
extern test_pattern_t test_list[NUM_TEST_PATTERNS];
|
extern test_pattern_t test_list[NUM_TEST_PATTERNS];
|
||||||
|
Loading…
Reference in New Issue
Block a user