mirror of
https://github.com/dgibson/dtc.git
synced 2025-10-14 00:37:41 -04:00
dtc: implement labels on memory reserve slots
Allow a label to be placed on a memory reserve entry. Change the parser to recognize and store them. Emit them when writing assembly output. Signed-off-by: Milton Miller <miltonm@bga.com>
This commit is contained in:
parent
85ab5cc6ec
commit
d429033851
2 changed files with 8 additions and 4 deletions
|
@ -92,11 +92,11 @@ memreserves: memreserve memreserves {
|
|||
}
|
||||
;
|
||||
|
||||
memreserve: DT_MEMRESERVE DT_ADDR DT_ADDR ';' {
|
||||
$$ = build_reserve_entry($2, $3, NULL);
|
||||
memreserve: label DT_MEMRESERVE DT_ADDR DT_ADDR ';' {
|
||||
$$ = build_reserve_entry($3, $4, $1);
|
||||
}
|
||||
| DT_MEMRESERVE DT_ADDR '-' DT_ADDR ';' {
|
||||
$$ = build_reserve_entry($2, $4 - $2 + 1, NULL);
|
||||
| label DT_MEMRESERVE DT_ADDR '-' DT_ADDR ';' {
|
||||
$$ = build_reserve_entry($3, $5 - $3 + 1, $1);
|
||||
}
|
||||
;
|
||||
|
||||
|
|
|
@ -497,6 +497,10 @@ void dt_to_asm(FILE *f, struct boot_info *bi, int version, int boot_cpuid_phys)
|
|||
* as it appears .quad isn't available in some assemblers.
|
||||
*/
|
||||
for (re = bi->reservelist; re; re = re->next) {
|
||||
if (re->label) {
|
||||
fprintf(f, "\t.globl\t%s\n", re->label);
|
||||
fprintf(f, "%s:\n", re->label);
|
||||
}
|
||||
fprintf(f, "\t.long\t0x%08x\n\t.long\t0x%08x\n",
|
||||
(unsigned int)(re->re.address >> 32),
|
||||
(unsigned int)(re->re.address & 0xffffffff));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue