Skip to content

Commit

Permalink
Refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
DQNEO committed Jul 9, 2023
1 parent 9aaf114 commit 4d954a4
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ func resolveVariableLengthInstrs(instrs []*Instruction, labeledSymbols map[strin
return todos
}

func encodeAllText(ss []*Stmt, labeledSymbols map[string]*symbolDefinition) []byte {
func encodeAllText(ss []*Stmt, labeledSymbols map[string]*symbolDefinition, globalSymbols map[string]bool) []byte {
var insts []*Instruction
var index int
var first *Instruction
Expand Down Expand Up @@ -613,8 +613,6 @@ func encodeAllData(ss []*Stmt, labeledSymbols map[string]*symbolDefinition) []by
return allData
}

var globalSymbols = make(map[string]bool)

func showVersion() {
fmt.Println("goas assembler version " + Version)
}
Expand All @@ -625,10 +623,11 @@ func EncodeString(source string) ([]byte, []byte) {
symbolsAppeared: make(map[string]bool),
}
stmts, symbolsInLexicalOrder := ParseString(source, sc)
textStmts, dataStmts, labeledSymbols := analyzeStatements(stmts)
allText := encodeAllText(textStmts, labeledSymbols)
textStmts, dataStmts, labeledSymbols, globalSymbols := analyzeStatements(stmts)
allText := encodeAllText(textStmts, labeledSymbols, globalSymbols)
allData := encodeAllData(dataStmts, labeledSymbols)
_ = symbolsInLexicalOrder
_ = globalSymbols
return allText, allData
}

Expand All @@ -654,8 +653,8 @@ func main() {
}

stmts, symbolsInLexicalOrder := ParseFiles(inFiles)
textStmts, dataStmts, labeledSymbols := analyzeStatements(stmts)
s_text.contents = encodeAllText(textStmts, labeledSymbols)
textStmts, dataStmts, labeledSymbols, globalSymbols := analyzeStatements(stmts)
s_text.contents = encodeAllText(textStmts, labeledSymbols, globalSymbols)
s_data.contents = encodeAllData(dataStmts, labeledSymbols)

hasRelaText := len(relaTextUsers) > 0
Expand Down Expand Up @@ -689,8 +688,8 @@ func main() {
s_shstrtab.contents = makeShStrTab(sectionNames)
resolveShNames(s_shstrtab.contents, sectionHeaders[1:])

s_rela_text.contents = buildRelaTextBody(symbolIndex, labeledSymbols)
s_rela_data.contents = buildRelaDataBody(symbolIndex, labeledSymbols)
s_rela_text.contents = buildRelaTextBody(symbolIndex, labeledSymbols, globalSymbols)
s_rela_data.contents = buildRelaDataBody(symbolIndex, labeledSymbols, globalSymbols)

sectionInBodyOrder := sortSectionsForBody(hasRelaText, hasRelaData, hasSymbols)
assert(len(sectionInBodyOrder) == len(sectionHeaders)-1, "sections len unmatch")
Expand All @@ -699,8 +698,9 @@ func main() {
elfFile.writeTo(w)
}

func analyzeStatements(stmts []*Stmt) ([]*Stmt, []*Stmt, map[string]*symbolDefinition) {
func analyzeStatements(stmts []*Stmt) ([]*Stmt, []*Stmt, map[string]*symbolDefinition, map[string]bool) {
var labeledSymbols = make(map[string]*symbolDefinition)
var globalSymbols = make(map[string]bool)
var textStmts []*Stmt
var dataStmts []*Stmt

Expand Down Expand Up @@ -732,10 +732,10 @@ func analyzeStatements(stmts []*Stmt) ([]*Stmt, []*Stmt, map[string]*symbolDefin
textStmts = append(textStmts, s)
}
}
return textStmts, dataStmts, labeledSymbols
return textStmts, dataStmts, labeledSymbols, globalSymbols
}

func buildRelaTextBody(symbolIndex map[string]int, labeledSymbols map[string]*symbolDefinition) []byte {
func buildRelaTextBody(symbolIndex map[string]int, labeledSymbols map[string]*symbolDefinition, globalSymbols map[string]bool) []byte {
var contents []byte

for _, ru := range relaTextUsers {
Expand Down Expand Up @@ -782,7 +782,7 @@ func buildRelaTextBody(symbolIndex map[string]int, labeledSymbols map[string]*sy
return contents
}

func buildRelaDataBody(symbolIndex map[string]int, labeledSymbols map[string]*symbolDefinition) []byte {
func buildRelaDataBody(symbolIndex map[string]int, labeledSymbols map[string]*symbolDefinition, globalSymbols map[string]bool) []byte {
var contents []byte
for _, ru := range relaDataUsers {
//debugf("checking relaDataUsers %s\n", ru.uses)
Expand Down

0 comments on commit 4d954a4

Please sign in to comment.