Compare commits
2 Commits
ee162a70ed
...
dd8c65ef79
| Author | SHA1 | Date | |
|---|---|---|---|
| dd8c65ef79 | |||
| 0fa4e24421 |
@ -3,5 +3,12 @@ Example of self-repeating code section
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
.main:
|
.main:
|
||||||
//TODO loop example
|
|
||||||
exit
|
.loop
|
||||||
|
const8 datum "ITERATION!!! "
|
||||||
|
movc ax 1
|
||||||
|
movc bx 1
|
||||||
|
movc cx @datum
|
||||||
|
movc dx #datum
|
||||||
|
sys
|
||||||
|
jmp @loop
|
||||||
|
|||||||
@ -148,10 +148,6 @@ static bool compileBinary(Compiler* cmp){
|
|||||||
for(u32 i = 0; i < cmp->binary.section_list.len; i++){
|
for(u32 i = 0; i < cmp->binary.section_list.len; i++){
|
||||||
CompiledSection* sec = &cmp->binary.section_list.data[i];
|
CompiledSection* sec = &cmp->binary.section_list.data[i];
|
||||||
total_size += sec->bytes.len;
|
total_size += sec->bytes.len;
|
||||||
if(str_equals(sec->name, main_sec_name))
|
|
||||||
continue;
|
|
||||||
prev_sec->next = sec;
|
|
||||||
sec->offset = prev_sec->offset + prev_sec->bytes.len;
|
|
||||||
|
|
||||||
ConstDataProps cd = ConstDataProps_construct(sec->name, sec->bytes.len, sec->offset);
|
ConstDataProps cd = ConstDataProps_construct(sec->name, sec->bytes.len, sec->offset);
|
||||||
if(!HashMap_ConstDataProps_tryPush(&cmp->binary.const_data_map, cd.name, cd)){
|
if(!HashMap_ConstDataProps_tryPush(&cmp->binary.const_data_map, cd.name, cd)){
|
||||||
@ -165,6 +161,10 @@ static bool compileBinary(Compiler* cmp){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(str_equals(sec->name, main_sec_name))
|
||||||
|
continue;
|
||||||
|
prev_sec->next = sec;
|
||||||
|
sec->offset = prev_sec->offset + prev_sec->bytes.len;
|
||||||
prev_sec = sec;
|
prev_sec = sec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user