- Update romcc so that it more successfully spills registers to the xmm registers
- Add several more test cases. - Bump the version number to .32 git-svn-id: svn://svn.coreboot.org/coreboot/trunk@919 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
14
util/romcc/tests/simple_test41.c
Normal file
14
util/romcc/tests/simple_test41.c
Normal file
@@ -0,0 +1,14 @@
|
||||
static void main(void)
|
||||
{
|
||||
unsigned long a,b,c, d;
|
||||
volatile unsigned long *val = (volatile unsigned long *)0x1234;
|
||||
a = val[0];
|
||||
b = val[1];
|
||||
c = a*b;
|
||||
val[2] = c;
|
||||
d = val[3];
|
||||
a = c / d;
|
||||
b = c % d;
|
||||
val[4] = a;
|
||||
val[5] = b;
|
||||
}
|
47
util/romcc/tests/simple_test43.c
Normal file
47
util/romcc/tests/simple_test43.c
Normal file
@@ -0,0 +1,47 @@
|
||||
static void spd_set_memclk(void)
|
||||
{
|
||||
|
||||
unsigned min;
|
||||
unsigned device;
|
||||
|
||||
|
||||
min = 0x250;
|
||||
|
||||
|
||||
for(device = 0x80; device <= 0x81; device += 1)
|
||||
{
|
||||
unsigned cur;
|
||||
int latency;
|
||||
unsigned long loops;
|
||||
|
||||
cur = 5 | 0xa0;
|
||||
latency = __builtin_inw(0xab);
|
||||
|
||||
if (latency > 0x250) {
|
||||
loops = 1000000;
|
||||
while(--loops)
|
||||
;
|
||||
if (!loops) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
loops = 1000000;
|
||||
while(--loops)
|
||||
;
|
||||
end:
|
||||
;
|
||||
|
||||
}
|
||||
loops = 1000000;
|
||||
while(--loops)
|
||||
;
|
||||
|
||||
if (latency > 0x250) {
|
||||
;
|
||||
}
|
||||
|
||||
if (cur > 0x250) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
41
util/romcc/tests/simple_test45.c
Normal file
41
util/romcc/tests/simple_test45.c
Normal file
@@ -0,0 +1,41 @@
|
||||
static void spd_set_memclk(void)
|
||||
{
|
||||
unsigned min_cycle_time;
|
||||
unsigned device;
|
||||
int new_cycle_time, new_latency;
|
||||
int index;
|
||||
int latency;
|
||||
|
||||
min_cycle_time = 0x50;
|
||||
device = 0x50;
|
||||
new_cycle_time = 0xa0;
|
||||
new_latency = 5;
|
||||
|
||||
|
||||
latency = 0;
|
||||
for(index = 0; index < 3; index++, latency++) {
|
||||
unsigned long loops;
|
||||
loops = 1000000;
|
||||
do {
|
||||
unsigned short val;
|
||||
val = __builtin_inw(0x10e0);
|
||||
} while(--loops);
|
||||
if (!loops) {
|
||||
continue;
|
||||
}
|
||||
|
||||
__builtin_outb(device, 0xe4);
|
||||
__builtin_outb(index, 0xe8);
|
||||
|
||||
loops = 1000000;
|
||||
while(--loops)
|
||||
;
|
||||
}
|
||||
if (new_latency > 4){
|
||||
return;
|
||||
}
|
||||
|
||||
if (new_cycle_time > min_cycle_time) {
|
||||
min_cycle_time = new_cycle_time;
|
||||
}
|
||||
}
|
41
util/romcc/tests/simple_test46.c
Normal file
41
util/romcc/tests/simple_test46.c
Normal file
@@ -0,0 +1,41 @@
|
||||
static void spd_set_memclk(void)
|
||||
{
|
||||
static const int indicies[] = { 26, 23, 9 };
|
||||
int new_cycle_time, new_latency;
|
||||
int index;
|
||||
unsigned min_cycle_time, min_latency;
|
||||
unsigned device;
|
||||
|
||||
min_cycle_time = 0x50;
|
||||
min_latency = 2;
|
||||
device = 0x50;
|
||||
new_cycle_time = 0xa0;
|
||||
new_latency = 5;
|
||||
|
||||
for(index = 0; index < 3; index++) {
|
||||
unsigned long loops;
|
||||
unsigned long address;
|
||||
address = indicies[index];
|
||||
loops = 1000000;
|
||||
do {
|
||||
} while(--loops);
|
||||
if (loops < 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
__builtin_outb(device, 0x10e4);
|
||||
__builtin_outb(address, 0x10e8);
|
||||
|
||||
loops = 1000000;
|
||||
if ((loops?0:-1) < 0) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (new_cycle_time > min_cycle_time) {
|
||||
min_cycle_time = new_cycle_time;
|
||||
}
|
||||
if (new_latency > min_latency) {
|
||||
min_latency = new_latency;
|
||||
}
|
||||
}
|
43
util/romcc/tests/simple_test47.c
Normal file
43
util/romcc/tests/simple_test47.c
Normal file
@@ -0,0 +1,43 @@
|
||||
static void spd_set_memclk(void)
|
||||
{
|
||||
unsigned min_cycle_time, min_latency;
|
||||
unsigned device;
|
||||
int new_cycle_time, new_latency;
|
||||
int index;
|
||||
int latency;
|
||||
|
||||
min_cycle_time = 0x50;
|
||||
min_latency = 2;
|
||||
device = 0x50;
|
||||
new_latency = 5;
|
||||
new_cycle_time = 0xa0;
|
||||
latency = 23;
|
||||
|
||||
for(index = 0; index < 3; index++, latency++) {
|
||||
unsigned long loops;
|
||||
unsigned address = index;
|
||||
|
||||
loops = 1000000;
|
||||
do {
|
||||
} while(--loops);
|
||||
if (loops) {
|
||||
continue;
|
||||
}
|
||||
|
||||
__builtin_outb(device, 0x10e4);
|
||||
|
||||
__builtin_outb(address & 0xFF, 0x10e8);
|
||||
|
||||
loops = 1000000;
|
||||
while(--loops)
|
||||
;
|
||||
}
|
||||
|
||||
if (new_cycle_time > min_cycle_time) {
|
||||
min_cycle_time = new_cycle_time;
|
||||
}
|
||||
if (new_latency > min_latency) {
|
||||
min_latency = new_latency;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user