reorder paragraphs in macro documentation

This commit is contained in:
Perry Kivolowitz 2023-02-17 10:01:12 -06:00
parent 0813ced99a
commit 65da217787
2 changed files with 47 additions and 47 deletions

View file

@ -55,6 +55,14 @@ First, we describe a number of macros which are the same on both Apple
and Linux. These macros don't converge Apple and Linux. They're just and Linux. These macros don't converge Apple and Linux. They're just
nice to have. nice to have.
### AASCIZ
`AASCIZ label, string`
This macro invokes `.asciz` with the string set to `string` and the
label set to `label`. In addition, this macro ensures that the string
begins on a 4-byte-aligned boundary.
### PUSH_P, PUSH_R, POP_P and POP_R ### PUSH_P, PUSH_R, POP_P and POP_R
These macros save some repetitive typing. For example: These macros save some repetitive typing. For example:
@ -99,6 +107,45 @@ Signature:
The larger of `src_a` and `src_b` is put into `dest`. The larger of `src_a` and `src_b` is put into `dest`.
### Mark a label as global
Makes a label available externally.
Signature:
`GLABEL label`
An underscore is prepended.
### Calling CRT functions
If you create your own function without an underscore, just call it as
usual.
If you need to call a function such as those found in the C runtime
library, use this macro in this way:
`CRT strlen`
An underscore is prepended on the Mac.
### Declaring `main()`
Put `MAIN` on a line by itself. Notice there is no colon.
An underscore is prepended on the Mac.
### `errno`
The externally defined `errno` is accessed via a CRT function which
isn't seen when coding in C and C++. The function is named differently
on Mac versus Linux. To get the address of `errno` use:
`ERRNO_ADDR`
This macro makes the correct CRT call and leaves the address of `errno`
in `x0`.
## Loads and Stores ## Loads and Stores
### GLD_PTR ### GLD_PTR
@ -170,50 +217,3 @@ register.
Note: No underscore is prepended. Note: No underscore is prepended.
See [this sample program](./float.S) for an example. See [this sample program](./float.S) for an example.
## Mark a label as global
Makes a label available externally.
Signature:
`GLABEL label`
An underscore is prepended.
## Calling CRT functions
If you create your own function without an underscore, just call it as
usual.
If you need to call a function such as those found in the C runtime
library, use this macro in this way:
`CRT strlen`
An underscore is prepended on the Mac.
## Declaring `main()`
Put `MAIN` on a line by itself. Notice there is no colon.
An underscore is prepended on the Mac.
## `errno`
The externally defined `errno` is accessed via a CRT function which
isn't seen when coding in C and C++. The function is named differently
on Mac versus Linux. To get the address of `errno` use:
`ERRNO_ADDR`
This macro makes the correct CRT call and leaves the address of `errno`
in `x0`.
## AASCIZ
`AASCIZ label, string`
This macro invokes `.asciz` with the string set to `string` and the
label set to `label`. In addition, this macro ensures that the string
begins on a 4-byte-aligned boundary.

Binary file not shown.