summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--aarch64/mariokartwii_ch07.S11
-rw-r--r--aarch64/mariokartwii_ch08.S7
-rw-r--r--aarch64/mariokartwii_ch10.S23
3 files changed, 23 insertions, 18 deletions
diff --git a/aarch64/mariokartwii_ch07.S b/aarch64/mariokartwii_ch07.S
index ce3a3f5..53ce2a2 100644
--- a/aarch64/mariokartwii_ch07.S
+++ b/aarch64/mariokartwii_ch07.S
@@ -4,10 +4,6 @@
.global _main
_main:
- // Save stack frame
- stp x29, x30, [sp, #-16]!
- mov x29, sp
-
// Add
mov x0, #1
mov x1, #2
@@ -32,10 +28,3 @@ _main:
neg x8, x7
brk #0 // (lldb) register read
-
- // Restore stack frame
- ldp x29, x30, [sp], #16
-
- // Return 0
- mov x0, #0
- ret
diff --git a/aarch64/mariokartwii_ch08.S b/aarch64/mariokartwii_ch08.S
index 3194156..bd04da4 100644
--- a/aarch64/mariokartwii_ch08.S
+++ b/aarch64/mariokartwii_ch08.S
@@ -21,10 +21,3 @@ _main:
movk x3, #0x4444
brk #0 // (lldb) register read
-
- // Restore stack frame
- ldp x29, x30, [sp], #16
-
- // Return 0
- mov x0, #0
- ret
diff --git a/aarch64/mariokartwii_ch10.S b/aarch64/mariokartwii_ch10.S
new file mode 100644
index 0000000..082b706
--- /dev/null
+++ b/aarch64/mariokartwii_ch10.S
@@ -0,0 +1,23 @@
+// https://mariokartwii.com/arm64/ch10.html
+
+.section __TEXT,__text
+.global _main
+
+_main:
+ // move shift
+ mov x0, #0xFFFFFFFFFFFFFFFF
+ lsl x0, x0, #32
+
+ mov x1, #0xFFFFFFFFFFFFFFFF
+ movk x1, #0x1234, lsl 32
+
+ mov x2, #0xFFFFFFFFFFFFFFFF
+ movz x2, #0x1234, lsl 32
+
+ mov x3, #0xFFFFFFFFFFFFFFFF
+ movk x3, #0x1111, lsl 48
+ movk x3, #0x2222, lsl 32
+ movk x3, #0x3333, lsl 16
+ movk x3, #0x4444
+
+ brk #0 // (lldb) register read