Skip to content
Snippets Groups Projects
Verified Commit e568ce53 authored by Recolic Keghart's avatar Recolic Keghart
Browse files

another trial

parent 5b11c6b8
No related branches found
No related tags found
1 merge request!2Performance tune
Pipeline #799 passed with stages
in 2 minutes and 36 seconds
...@@ -12,14 +12,16 @@ uint8_t pmem[PMEM_SIZE]; ...@@ -12,14 +12,16 @@ uint8_t pmem[PMEM_SIZE];
/* Memory accessing interfaces */ /* Memory accessing interfaces */
__attribute__((hot)) uint32_t paddr_read(paddr_t addr, int len) { __attribute__((hot)) uint32_t paddr_read(paddr_t addr, int len) {
switch(len) { static const uint32_t niddle[] = {0, 0xff, 0xffff, 0xffffff, 0xffffffff};
case 4: return pmem_rw(addr, uint32_t); return pmem_rw(addr, uint32_t) & niddle[len];
case 2: return pmem_rw(addr, uint32_t) & 0x0000ffff; // switch(len) {
case 1: return pmem_rw(addr, uint32_t) & 0x000000ff; // case 4: return pmem_rw(addr, uint32_t);
case 3: return pmem_rw(addr, uint32_t) & 0x00ffffff; // case 2: return pmem_rw(addr, uint32_t) & 0x0000ffff;
case 0: return 0; // case 1: return pmem_rw(addr, uint32_t) & 0x000000ff;
} // case 3: return pmem_rw(addr, uint32_t) & 0x00ffffff;
return pmem_rw(addr, uint32_t) & (~0u >> ((4 - len) << 3)); // case 0: return 0;
// }
// return pmem_rw(addr, uint32_t) & (~0u >> ((4 - len) << 3));
} }
void paddr_write(paddr_t addr, uint32_t data, int len) { void paddr_write(paddr_t addr, uint32_t data, int len) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment