mm/include/macro.inc
Anghelo Carvajal a04f1b8e05
Change tooling for better elf correctness (#1632)
* Add addresses for makerom and boot segments

* Mark entrypoint as the entry of the elf

* Add extra labels to macro.inc

* Use dlabel, jlabel and endlabel in disassembly

* Make jlabel global

* git subrepo pull tools/asm-processor

subrepo:
  subdir:   "tools/asm-processor"
  merged:   "92b9ec72f"
upstream:
  origin:   "git@github.com:simonlindholm/asm-processor.git"
  branch:   "main"
  commit:   "92b9ec72f"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* Use `dlabel`s for non-functions in .text

* Add linker asserts

* Move framebuffer_lo to before the makerom segment to avoid `dot moved backwards` warnings

* fix

* Improve assert message

* fix

* Third fix

* Fix four

* Move undefined_syms to linker_script folder

* Make second linker script file to avoid abusing undefined_syms

* Update Makefile

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* Rename to extra.ld

* Use entrypoint symbol on ROM header

---------

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
2024-05-17 06:41:23 -07:00

93 lines
1.9 KiB
GAS

.macro glabel label
.global \label
.ent \label
.type \label, @function
\label:
.endm
.macro endlabel label
.end \label
.size \label, . - \label
.endm
.macro dlabel label
.global \label
\label:
.endm
.macro jlabel label
.global \label
\label:
.endm
# COP0 register aliases
.set Index, $0
.set Random, $1
.set EntryLo0, $2
.set EntryLo1, $3
.set Context, $4
.set PageMask, $5
.set Wired, $6
.set Reserved07, $7
.set BadVaddr, $8
.set Count, $9
.set EntryHi, $10
.set Compare, $11
.set Status, $12
.set Cause, $13
.set EPC, $14
.set PRevID, $15
.set Config, $16
.set LLAddr, $17
.set WatchLo, $18
.set WatchHi, $19
.set XContext, $20
.set Reserved21, $21
.set Reserved22, $22
.set Reserved23, $23
.set Reserved24, $24
.set Reserved25, $25
.set PErr, $26
.set CacheErr, $27
.set TagLo, $28
.set TagHi, $29
.set ErrorEPC, $30
.set Reserved31, $31
# Float register aliases (o32 ABI, odd ones are rarely used)
.set $fv0, $f0
.set $fv0f, $f1
.set $fv1, $f2
.set $fv1f, $f3
.set $ft0, $f4
.set $ft0f, $f5
.set $ft1, $f6
.set $ft1f, $f7
.set $ft2, $f8
.set $ft2f, $f9
.set $ft3, $f10
.set $ft3f, $f11
.set $fa0, $f12
.set $fa0f, $f13
.set $fa1, $f14
.set $fa1f, $f15
.set $ft4, $f16
.set $ft4f, $f17
.set $ft5, $f18
.set $ft5f, $f19
.set $fs0, $f20
.set $fs0f, $f21
.set $fs1, $f22
.set $fs1f, $f23
.set $fs2, $f24
.set $fs2f, $f25
.set $fs3, $f26
.set $fs3f, $f27
.set $fs4, $f28
.set $fs4f, $f29
.set $fs5, $f30
.set $fs5f, $f31