-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: yaopengfei <[email protected]>
- Loading branch information
Showing
56 changed files
with
1,810 additions
and
490 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,25 @@ | ||
SRC = la-asm-manual.adoc | ||
PDF = la-asm-manual.pdf | ||
|
||
PDF_THEME = themes/la-asm-manual-pdf.yml | ||
|
||
.PHONY: all clean | ||
|
||
$(PDF): $(PDF:.pdf=.adoc) $(SRC) | ||
asciidoctorj -b pdf $(SRC) -o $(PDF) | ||
$(PDF): $(PDF:.pdf=.adoc) $(SRC) $(PDF_THEME) | ||
/usr/bin/asciidoctor-pdf \ | ||
-a compress \ | ||
-a date="$(DATE)" \ | ||
-a monthyear="$(MONTHYEAR)" \ | ||
-a pdf-style="$(PDF_THEME)" \ | ||
-a pdf-fontsdir=fonts \ | ||
-v \ | ||
la-asm-manual.adoc -o $@ | ||
|
||
|
||
html: $(patsubst %.adoc, %.html, $(SRC)) | ||
|
||
%.html: %.adoc | ||
asciidoctor $^ -o $@ | ||
|
||
clean: | ||
-rm -rf la-asm-manual.pdf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 3 additions & 3 deletions
6
adoc/CHAPTER-1.Introduction/1.1-LoongArch_Architecture_Overview.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
=== *1.1 `LoongArch` Architecture Overview* | ||
|
||
[.text-justify] | ||
*`LoongArch`* has the typical characteristics of RISC. *`LoongArch`* instructions are of fixed size and have regular instruction formats. Most of the instructions have two source operands and one destination operand. *`LoongArch`* is a load-store architecture; this means only the load/store instructions can access memory the operands of the other instructions are within the processor core or the immediate number in the instruction opcode. | ||
*`LoongArch`* has the typical characteristics of RISC. Its instructions are of fixed size and follow regular formats. Most instructions use two source operands and one destination operand. *`LoongArch`* is a load-store architecture, meaning that only load and store instructions can access memory; the operands of other instructions reside within the processor core or are immediate values specified in the instruction opcode. | ||
|
||
[.text-justify] | ||
*`LoongArch`* is divided into two versions, the 32-bit version (*`LA32`*) and the 64-bit version (*`LA64`*). *`LA64`* applications are “application-level backward binary compatibility” with *`LA32`* applications. That means *`LA32`* applications can run directly on the machine compatible with *`LA64`*, but the behavior of system softwares (such as the kernel) on the machine compatible with *`LA32`* is not guaranteed to be the same as on the machine compatible with *`LA64`*. | ||
*`LoongArch`* is divided into two versions: the 32-bit version (*`LA32`*) and the 64-bit version (*`LA64`*). *`LA64`* applications provide “application-level backward binary compatibility” with *`LA32`* applications, meaning that *`LA32`* applications can run directly on a machine compatible with *`LA64`*. However, the behavior of system software, such as the kernel, on a machine compatible with LA32 is not guaranteed to be the same as on a machine compatible with LA64. | ||
|
||
[.text-justify] | ||
*`LoongArch`* is composed of a basic part (*`Loongson Base`*) and an expanded part, as shown in the figure. The expansion part includes Loongson Binary Translation (*`LBT`*), Loongson VirtualiZation (*`LVZ`*), Loongson SIMD EXtension (*`LSX`*), and Loongson Advanced SIMD EXtension(*`LASX`*). | ||
*`LoongArch`* is composed of a basic part (*`Loongson Base`*) and an expanded part, as shown in the figure. The expansion part includes Loongson Binary Translation (*`LBT`*), Loongson Virtualization (*`LVZ`*), Loongson SIMD Extension (*`LSX`*), and Loongson Advanced SIMD Extension(*`LASX`*). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,13 @@ | ||
=== *4.1 Address Range* | ||
|
||
[.text-justify] | ||
The memory address space on *`LoongArch`* is a continuous linear address space, which is addressed in bytes. | ||
The memory address space on *`LoongArch`* is a continuous linear address space that is addressed in bytes. | ||
|
||
[.text-justify] | ||
In *`LA32`*, the specification of the memory address space that application can access is: 0-2^*`31`*^-1. | ||
In *`LA32`*, the specification for the accessible memory address space for applications is: 0-2^*`31`*^-1. | ||
|
||
[.text-justify] | ||
In *`LA64`*, the range of memory address space accessible by application is: 0-2^*`VALEN-1`*^-1. Generally *`VALEN`* is in the range of [*`40`*,*`48`*]. Application can determine the specific value of *`VALEN`* by executing the *`CPUCFG`* instruction to read the *`VALEN`* field of the 0x1 configuration word. | ||
In *`LA64`*, the range of memory address space accessible by application is: 0-2^*`VALEN-1`*^-1, where *`VALEN`* is generally in the range of [*`40`*,*`48`*]. Applications can determine the specific value of *`VALEN`* by executing the *`CPUCFG`* instruction to read the *`VALEN`* field of the 0x1 configuration word. | ||
|
||
[.text-justify] | ||
When the virtual address of the instruction fetch or memory access instruction in the application exceeds the above range, ADEF or ADEM will be triggered. |
Oops, something went wrong.