Skip to content

Commit

Permalink
- Preparing for SafePoints
Browse files Browse the repository at this point in the history
  • Loading branch information
tgiphil committed Dec 1, 2024
1 parent a56b343 commit 8e64bb7
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
18 changes: 14 additions & 4 deletions Source/Docs/mosa-runtime-tables.dot
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ digraph "MOSA Runtime Tables"
];

"NameString" [
label = "<f0>String Object|<f1>Object Header|<f2>Pointer to Method Table|<f3>String Length|<f4>Unicode String"
label = "<f0>Internal String Object|<f1>Object Header|<f2>Pointer to Method Table|<f3>String Length|<f4>Unicode String"
shape = "record"
color = "red"
];
Expand Down Expand Up @@ -209,7 +209,7 @@ digraph "MOSA Runtime Tables"
];

"MethodDefinition" [
label = "<f0>Method Definition|<f1>Pointer to Method Name|<f2>~Pointer to Custom Attributes|<f3>Method Attributes|<f4>Local & Parameter Stack Size|<f5>Pointer to Method|<f6>Pointer to Return Type Definition|<f7>~Pointer to Protected Region Table|<f8>Pointer to SafePoint Table|<f9>Number of Parameters|<f10>Pointer to Parameter Definition 1|...|Pointer to Parameter Definition N"
label = "<f0>Method Definition|<f1>Pointer to Method Name|<f2>~Pointer to Custom Attributes|<f3>Method Attributes|<f4>Local & Parameter Stack Size|<f5>Pointer to Method|<f6>Pointer to Return Type Definition|<f7>~Pointer to Protected Region Table|<f8>Pointer to Method GC Data|<f9>Number of Parameters|<f10>Pointer to Parameter Definition 1|...|Pointer to Parameter Definition N"
shape = "record"
color = "purple"
];
Expand All @@ -232,7 +232,7 @@ digraph "MOSA Runtime Tables"
color = "blue"
];

"MethodDefinition":f8 -> "SafePointTable":f0 [
"MethodDefinition":f8 -> "Method GC Data":f0 [
id = 0
];

Expand All @@ -258,14 +258,24 @@ digraph "MOSA Runtime Tables"
id = 0
color = "blue"
];

"Method GC Data" [
label = "<f0>Method GC Data|<f1>Pointer to SafePoint Table|<f2>Pointer to Method GC Stack Data"
shape = "record"
];

"Method GC Data":f1 -> "SafePoint":f0 [
id = 0
style = "dotted"
];

"SafePointTable" [
label = "<f0>SafePoint Table|<f1>Number of SafePoints|<f2>SafePoint 1|..|SafePoint N"
shape = "record"
];

"SafePoint" [
label = "<f0>SafePoint|<f1>Address Offset|<f2>Address Range (signed)|<f3>Breakpoint Indicator|<f4>CPU Registers Bitmap (64 bit)"
label = "<f0>SafePoint|<f1>Address Offset|<f2>Address Range (signed)|<f3>Breakpoint Indicator|<f4>CPU Registers Bitmap (32 bit)"
shape = "record"
];

Expand Down
12 changes: 12 additions & 0 deletions Source/Docs/runtime-tables.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,15 @@ MOSA Runtime Tables
This diagram represents the internal runtime tables within the MOSA virtual machine:

.. graphviz:: mosa-runtime-tables.dot

Internal String Object
----------------------

.. csv-table::
:header: "Fields"
:widths: 200

Object Header
Pointer to Method Table
String Length
Unicode String

0 comments on commit 8e64bb7

Please sign in to comment.