├── .gitignore ├── README.md ├── doc └── images │ ├── godbolt_org_c_to_asm.png │ ├── intel_sse2_move_mask.png │ └── lord_asm.jpg ├── downloads ├── A Manual for the Plan 9 assembler.pdf ├── GoFunctionsInAssembly.pdf ├── Intel-Intrinsics-Guide-Offline-3.6.6.zip ├── assembly64.pdf ├── gnu Assembler manual.pdf ├── simd_for_cpp_developers.pdf └── x86 intrinsics cheat sheet v1.0.pdf ├── examples ├── allregisters │ ├── Makefile │ ├── README.md │ ├── go.mod │ ├── main.go │ └── pkg │ │ ├── all_registers.go │ │ └── all_registers.s ├── arg_and_ret │ ├── Makefile │ ├── README.md │ ├── go.mod │ ├── main.go │ └── pkg │ │ ├── arg_and_ret.go │ │ └── arg_and_ret.s ├── arm64 │ └── move_mask │ │ ├── README.md │ │ ├── c │ │ ├── .gitignore │ │ ├── Makefile │ │ └── move_mask.c │ │ ├── go.mod │ │ ├── movemask.go │ │ ├── movemask_arm64.s │ │ └── movemask_test.go ├── caesar_crypt │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── caesar │ │ ├── fastcgo │ │ │ ├── caesar.go │ │ │ ├── caesar.h │ │ │ ├── caesar_avx2.h │ │ │ └── caesar_avx512.h │ │ ├── golang │ │ │ ├── caesar.go │ │ │ └── caesar_search_table.go │ │ └── plan9asm │ │ │ ├── caesar.go │ │ │ ├── caesar_avx2.s │ │ │ └── caesar_plain.s │ ├── go.mod │ ├── go.sum │ ├── main.go │ └── test │ │ └── main.c ├── call_go_func │ ├── Makefile │ ├── README.md │ ├── go.mod │ ├── main.go │ └── pkg │ │ ├── call_go_func.go │ │ └── call_go_func.s ├── find_token │ ├── README.md │ └── src │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── find_token.c │ │ └── token_to_bitmap.asm ├── global_variable │ ├── Makefile │ ├── README.md │ ├── go.mod │ ├── main.go │ └── pkg │ │ ├── global_variable.go │ │ └── global_variable.s ├── is_ascii │ ├── README.md │ ├── experiment │ │ ├── Makefile │ │ ├── is_ascii.go │ │ └── is_ascii_timing_test.go │ ├── go.mod │ ├── is_ascii.go │ ├── is_ascii_amd64.go │ ├── is_ascii_amd64.s │ ├── is_ascii_test.go │ ├── jumptable │ │ ├── jump_table.go │ │ └── jump_table.s │ └── src │ │ ├── Makefile │ │ ├── is_ascii.S │ │ └── is_ascii.c ├── is_const │ ├── README.md │ ├── go.mod │ ├── is_const_amd64.go │ ├── is_const_amd64.s │ ├── is_const_test.go │ └── src │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── is_const.S │ │ └── is_const.c ├── is_delta_const │ ├── README.md │ ├── go.mod │ ├── is_delta_const_amd64.go │ ├── is_delta_const_amd64.s │ ├── is_delta_const_amd64_test.go │ └── is_delta_const_test.go ├── is_sorted │ ├── Makefile │ ├── README.md │ ├── doc │ │ ├── is_sorted_online_amd64.S │ │ ├── is_sorted_online_arm64.s │ │ └── is_sorted_raw.asm │ ├── go.mod │ ├── is_sorted.go │ ├── is_sorted_amd64.go │ ├── is_sorted_amd64.s │ ├── is_sorted_amd64_test.go │ └── is_sorted_test.go ├── load_256bits │ ├── .dlvinit │ ├── Makefile │ ├── README.md │ ├── go.mod │ ├── load_256bits_amd64.go │ ├── load_256bits_amd64.s │ └── load_256bits_amd64_test.go ├── prefetch │ ├── go.mod │ └── pkg │ │ ├── prefetch.go │ │ ├── prefetch.s │ │ └── prefetch_test.go ├── push_pop_stack │ ├── Makefile │ ├── README.md │ ├── go.mod │ ├── main.go │ └── pkg │ │ ├── push_pop_stack.go │ │ └── push_pop_stack.s └── static_data │ ├── Makefile │ ├── README.md │ ├── go.mod │ ├── main.go │ └── pkg │ ├── static_data.go │ └── static_data.s └── notes ├── Go plan9 汇编笔记.md ├── Go plan9 汇编笔记_arm64.md ├── images ├── 001_static_data.png ├── 002_pseudo_registers.png ├── 003_move_instructions.png ├── 004_missing_instructions.png ├── 005_64-bit_instraction_format.png ├── 006_function_declaration.png ├── 007_function_arguments.png ├── 008_stack_frame_1.png ├── 009_stack_frame_2.png ├── 010_local_variables.png ├── 011_stack_growth.png ├── 012_function_flags.png ├── 013_escape_analysis.png └── 014_stack_structure.png └── 调试方法.md /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/ 2 | .idea/ 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/README.md -------------------------------------------------------------------------------- /doc/images/godbolt_org_c_to_asm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/doc/images/godbolt_org_c_to_asm.png -------------------------------------------------------------------------------- /doc/images/intel_sse2_move_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/doc/images/intel_sse2_move_mask.png -------------------------------------------------------------------------------- /doc/images/lord_asm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/doc/images/lord_asm.jpg -------------------------------------------------------------------------------- /downloads/A Manual for the Plan 9 assembler.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/downloads/A Manual for the Plan 9 assembler.pdf -------------------------------------------------------------------------------- /downloads/GoFunctionsInAssembly.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/downloads/GoFunctionsInAssembly.pdf -------------------------------------------------------------------------------- /downloads/Intel-Intrinsics-Guide-Offline-3.6.6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/downloads/Intel-Intrinsics-Guide-Offline-3.6.6.zip -------------------------------------------------------------------------------- /downloads/assembly64.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/downloads/assembly64.pdf -------------------------------------------------------------------------------- /downloads/gnu Assembler manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/downloads/gnu Assembler manual.pdf -------------------------------------------------------------------------------- /downloads/simd_for_cpp_developers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/downloads/simd_for_cpp_developers.pdf -------------------------------------------------------------------------------- /downloads/x86 intrinsics cheat sheet v1.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/downloads/x86 intrinsics cheat sheet v1.0.pdf -------------------------------------------------------------------------------- /examples/allregisters/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/allregisters/Makefile -------------------------------------------------------------------------------- /examples/allregisters/README.md: -------------------------------------------------------------------------------- 1 | test all registers at amd64 platform 2 | -------------------------------------------------------------------------------- /examples/allregisters/go.mod: -------------------------------------------------------------------------------- 1 | module allregisters 2 | 3 | go 1.21.3 4 | -------------------------------------------------------------------------------- /examples/allregisters/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/allregisters/main.go -------------------------------------------------------------------------------- /examples/allregisters/pkg/all_registers.go: -------------------------------------------------------------------------------- 1 | package pkg 2 | 3 | func SetAllRegisters() 4 | -------------------------------------------------------------------------------- /examples/allregisters/pkg/all_registers.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/allregisters/pkg/all_registers.s -------------------------------------------------------------------------------- /examples/arg_and_ret/Makefile: -------------------------------------------------------------------------------- 1 | init: 2 | go mod init arg_and_ret 3 | -------------------------------------------------------------------------------- /examples/arg_and_ret/README.md: -------------------------------------------------------------------------------- 1 | 展示函数中如何获取参数,如何设置返回值 2 | 3 | -------------------------------------------------------------------------------- /examples/arg_and_ret/go.mod: -------------------------------------------------------------------------------- 1 | module arg_and_ret 2 | 3 | go 1.21.3 4 | -------------------------------------------------------------------------------- /examples/arg_and_ret/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/arg_and_ret/main.go -------------------------------------------------------------------------------- /examples/arg_and_ret/pkg/arg_and_ret.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/arg_and_ret/pkg/arg_and_ret.go -------------------------------------------------------------------------------- /examples/arg_and_ret/pkg/arg_and_ret.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/arg_and_ret/pkg/arg_and_ret.s -------------------------------------------------------------------------------- /examples/arm64/move_mask/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/arm64/move_mask/README.md -------------------------------------------------------------------------------- /examples/arm64/move_mask/c/.gitignore: -------------------------------------------------------------------------------- 1 | move_mask 2 | -------------------------------------------------------------------------------- /examples/arm64/move_mask/c/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/arm64/move_mask/c/Makefile -------------------------------------------------------------------------------- /examples/arm64/move_mask/c/move_mask.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/arm64/move_mask/c/move_mask.c -------------------------------------------------------------------------------- /examples/arm64/move_mask/go.mod: -------------------------------------------------------------------------------- 1 | module movemask 2 | 3 | go 1.22.0 4 | -------------------------------------------------------------------------------- /examples/arm64/move_mask/movemask.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/arm64/move_mask/movemask.go -------------------------------------------------------------------------------- /examples/arm64/move_mask/movemask_arm64.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/arm64/move_mask/movemask_arm64.s -------------------------------------------------------------------------------- /examples/arm64/move_mask/movemask_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/arm64/move_mask/movemask_test.go -------------------------------------------------------------------------------- /examples/caesar_crypt/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | cmd/ 3 | temp/ 4 | -------------------------------------------------------------------------------- /examples/caesar_crypt/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/Makefile -------------------------------------------------------------------------------- /examples/caesar_crypt/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/README.md -------------------------------------------------------------------------------- /examples/caesar_crypt/caesar/fastcgo/caesar.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/caesar/fastcgo/caesar.go -------------------------------------------------------------------------------- /examples/caesar_crypt/caesar/fastcgo/caesar.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/caesar/fastcgo/caesar.h -------------------------------------------------------------------------------- /examples/caesar_crypt/caesar/fastcgo/caesar_avx2.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/caesar/fastcgo/caesar_avx2.h -------------------------------------------------------------------------------- /examples/caesar_crypt/caesar/fastcgo/caesar_avx512.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/caesar/fastcgo/caesar_avx512.h -------------------------------------------------------------------------------- /examples/caesar_crypt/caesar/golang/caesar.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/caesar/golang/caesar.go -------------------------------------------------------------------------------- /examples/caesar_crypt/caesar/golang/caesar_search_table.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/caesar/golang/caesar_search_table.go -------------------------------------------------------------------------------- /examples/caesar_crypt/caesar/plan9asm/caesar.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/caesar/plan9asm/caesar.go -------------------------------------------------------------------------------- /examples/caesar_crypt/caesar/plan9asm/caesar_avx2.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/caesar/plan9asm/caesar_avx2.s -------------------------------------------------------------------------------- /examples/caesar_crypt/caesar/plan9asm/caesar_plain.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/caesar/plan9asm/caesar_plain.s -------------------------------------------------------------------------------- /examples/caesar_crypt/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/go.mod -------------------------------------------------------------------------------- /examples/caesar_crypt/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/go.sum -------------------------------------------------------------------------------- /examples/caesar_crypt/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/main.go -------------------------------------------------------------------------------- /examples/caesar_crypt/test/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/caesar_crypt/test/main.c -------------------------------------------------------------------------------- /examples/call_go_func/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/call_go_func/Makefile -------------------------------------------------------------------------------- /examples/call_go_func/README.md: -------------------------------------------------------------------------------- 1 | 汇编中调用 golang 的函数 2 | -------------------------------------------------------------------------------- /examples/call_go_func/go.mod: -------------------------------------------------------------------------------- 1 | module call_go_func 2 | 3 | go 1.21.3 4 | -------------------------------------------------------------------------------- /examples/call_go_func/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/call_go_func/main.go -------------------------------------------------------------------------------- /examples/call_go_func/pkg/call_go_func.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/call_go_func/pkg/call_go_func.go -------------------------------------------------------------------------------- /examples/call_go_func/pkg/call_go_func.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/call_go_func/pkg/call_go_func.s -------------------------------------------------------------------------------- /examples/find_token/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/find_token/README.md -------------------------------------------------------------------------------- /examples/find_token/src/.gitignore: -------------------------------------------------------------------------------- 1 | find_token 2 | -------------------------------------------------------------------------------- /examples/find_token/src/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/find_token/src/Makefile -------------------------------------------------------------------------------- /examples/find_token/src/find_token.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/find_token/src/find_token.c -------------------------------------------------------------------------------- /examples/find_token/src/token_to_bitmap.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/find_token/src/token_to_bitmap.asm -------------------------------------------------------------------------------- /examples/global_variable/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/global_variable/Makefile -------------------------------------------------------------------------------- /examples/global_variable/README.md: -------------------------------------------------------------------------------- 1 | 使用 golang 定义的全局变量的例子 2 | -------------------------------------------------------------------------------- /examples/global_variable/go.mod: -------------------------------------------------------------------------------- 1 | module global_variable 2 | 3 | go 1.21.3 4 | -------------------------------------------------------------------------------- /examples/global_variable/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/global_variable/main.go -------------------------------------------------------------------------------- /examples/global_variable/pkg/global_variable.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/global_variable/pkg/global_variable.go -------------------------------------------------------------------------------- /examples/global_variable/pkg/global_variable.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/global_variable/pkg/global_variable.s -------------------------------------------------------------------------------- /examples/is_ascii/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/README.md -------------------------------------------------------------------------------- /examples/is_ascii/experiment/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/experiment/Makefile -------------------------------------------------------------------------------- /examples/is_ascii/experiment/is_ascii.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/experiment/is_ascii.go -------------------------------------------------------------------------------- /examples/is_ascii/experiment/is_ascii_timing_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/experiment/is_ascii_timing_test.go -------------------------------------------------------------------------------- /examples/is_ascii/go.mod: -------------------------------------------------------------------------------- 1 | module is_ascii 2 | 3 | go 1.20 4 | -------------------------------------------------------------------------------- /examples/is_ascii/is_ascii.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/is_ascii.go -------------------------------------------------------------------------------- /examples/is_ascii/is_ascii_amd64.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/is_ascii_amd64.go -------------------------------------------------------------------------------- /examples/is_ascii/is_ascii_amd64.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/is_ascii_amd64.s -------------------------------------------------------------------------------- /examples/is_ascii/is_ascii_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/is_ascii_test.go -------------------------------------------------------------------------------- /examples/is_ascii/jumptable/jump_table.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/jumptable/jump_table.go -------------------------------------------------------------------------------- /examples/is_ascii/jumptable/jump_table.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/jumptable/jump_table.s -------------------------------------------------------------------------------- /examples/is_ascii/src/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/src/Makefile -------------------------------------------------------------------------------- /examples/is_ascii/src/is_ascii.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/src/is_ascii.S -------------------------------------------------------------------------------- /examples/is_ascii/src/is_ascii.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_ascii/src/is_ascii.c -------------------------------------------------------------------------------- /examples/is_const/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_const/README.md -------------------------------------------------------------------------------- /examples/is_const/go.mod: -------------------------------------------------------------------------------- 1 | module is_const 2 | 3 | go 1.22 4 | -------------------------------------------------------------------------------- /examples/is_const/is_const_amd64.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_const/is_const_amd64.go -------------------------------------------------------------------------------- /examples/is_const/is_const_amd64.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_const/is_const_amd64.s -------------------------------------------------------------------------------- /examples/is_const/is_const_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_const/is_const_test.go -------------------------------------------------------------------------------- /examples/is_const/src/.gitignore: -------------------------------------------------------------------------------- 1 | is_const 2 | -------------------------------------------------------------------------------- /examples/is_const/src/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_const/src/Makefile -------------------------------------------------------------------------------- /examples/is_const/src/is_const.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_const/src/is_const.S -------------------------------------------------------------------------------- /examples/is_const/src/is_const.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_const/src/is_const.c -------------------------------------------------------------------------------- /examples/is_delta_const/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_delta_const/README.md -------------------------------------------------------------------------------- /examples/is_delta_const/go.mod: -------------------------------------------------------------------------------- 1 | module is_delta_const 2 | 3 | go 1.22.0 4 | -------------------------------------------------------------------------------- /examples/is_delta_const/is_delta_const_amd64.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_delta_const/is_delta_const_amd64.go -------------------------------------------------------------------------------- /examples/is_delta_const/is_delta_const_amd64.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_delta_const/is_delta_const_amd64.s -------------------------------------------------------------------------------- /examples/is_delta_const/is_delta_const_amd64_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_delta_const/is_delta_const_amd64_test.go -------------------------------------------------------------------------------- /examples/is_delta_const/is_delta_const_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_delta_const/is_delta_const_test.go -------------------------------------------------------------------------------- /examples/is_sorted/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_sorted/Makefile -------------------------------------------------------------------------------- /examples/is_sorted/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_sorted/README.md -------------------------------------------------------------------------------- /examples/is_sorted/doc/is_sorted_online_amd64.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_sorted/doc/is_sorted_online_amd64.S -------------------------------------------------------------------------------- /examples/is_sorted/doc/is_sorted_online_arm64.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_sorted/doc/is_sorted_online_arm64.s -------------------------------------------------------------------------------- /examples/is_sorted/doc/is_sorted_raw.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_sorted/doc/is_sorted_raw.asm -------------------------------------------------------------------------------- /examples/is_sorted/go.mod: -------------------------------------------------------------------------------- 1 | module is_sorted 2 | 3 | go 1.22.0 4 | -------------------------------------------------------------------------------- /examples/is_sorted/is_sorted.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_sorted/is_sorted.go -------------------------------------------------------------------------------- /examples/is_sorted/is_sorted_amd64.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_sorted/is_sorted_amd64.go -------------------------------------------------------------------------------- /examples/is_sorted/is_sorted_amd64.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_sorted/is_sorted_amd64.s -------------------------------------------------------------------------------- /examples/is_sorted/is_sorted_amd64_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_sorted/is_sorted_amd64_test.go -------------------------------------------------------------------------------- /examples/is_sorted/is_sorted_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/is_sorted/is_sorted_test.go -------------------------------------------------------------------------------- /examples/load_256bits/.dlvinit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/load_256bits/.dlvinit -------------------------------------------------------------------------------- /examples/load_256bits/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/load_256bits/Makefile -------------------------------------------------------------------------------- /examples/load_256bits/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/load_256bits/README.md -------------------------------------------------------------------------------- /examples/load_256bits/go.mod: -------------------------------------------------------------------------------- 1 | module load_256bits 2 | 3 | go 1.22.0 4 | -------------------------------------------------------------------------------- /examples/load_256bits/load_256bits_amd64.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/load_256bits/load_256bits_amd64.go -------------------------------------------------------------------------------- /examples/load_256bits/load_256bits_amd64.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/load_256bits/load_256bits_amd64.s -------------------------------------------------------------------------------- /examples/load_256bits/load_256bits_amd64_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/load_256bits/load_256bits_amd64_test.go -------------------------------------------------------------------------------- /examples/prefetch/go.mod: -------------------------------------------------------------------------------- 1 | module prefetch 2 | 3 | go 1.22.0 4 | -------------------------------------------------------------------------------- /examples/prefetch/pkg/prefetch.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/prefetch/pkg/prefetch.go -------------------------------------------------------------------------------- /examples/prefetch/pkg/prefetch.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/prefetch/pkg/prefetch.s -------------------------------------------------------------------------------- /examples/prefetch/pkg/prefetch_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/prefetch/pkg/prefetch_test.go -------------------------------------------------------------------------------- /examples/push_pop_stack/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/push_pop_stack/Makefile -------------------------------------------------------------------------------- /examples/push_pop_stack/README.md: -------------------------------------------------------------------------------- 1 | 测试局部变量的出栈和入栈 2 | -------------------------------------------------------------------------------- /examples/push_pop_stack/go.mod: -------------------------------------------------------------------------------- 1 | module push_pop_stack 2 | 3 | go 1.21.3 4 | -------------------------------------------------------------------------------- /examples/push_pop_stack/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/push_pop_stack/main.go -------------------------------------------------------------------------------- /examples/push_pop_stack/pkg/push_pop_stack.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/push_pop_stack/pkg/push_pop_stack.go -------------------------------------------------------------------------------- /examples/push_pop_stack/pkg/push_pop_stack.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/push_pop_stack/pkg/push_pop_stack.s -------------------------------------------------------------------------------- /examples/static_data/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/static_data/Makefile -------------------------------------------------------------------------------- /examples/static_data/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/static_data/README.md -------------------------------------------------------------------------------- /examples/static_data/go.mod: -------------------------------------------------------------------------------- 1 | module static_data 2 | 3 | go 1.21.3 4 | -------------------------------------------------------------------------------- /examples/static_data/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/static_data/main.go -------------------------------------------------------------------------------- /examples/static_data/pkg/static_data.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/static_data/pkg/static_data.go -------------------------------------------------------------------------------- /examples/static_data/pkg/static_data.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/examples/static_data/pkg/static_data.s -------------------------------------------------------------------------------- /notes/Go plan9 汇编笔记.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/Go plan9 汇编笔记.md -------------------------------------------------------------------------------- /notes/Go plan9 汇编笔记_arm64.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/Go plan9 汇编笔记_arm64.md -------------------------------------------------------------------------------- /notes/images/001_static_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/001_static_data.png -------------------------------------------------------------------------------- /notes/images/002_pseudo_registers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/002_pseudo_registers.png -------------------------------------------------------------------------------- /notes/images/003_move_instructions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/003_move_instructions.png -------------------------------------------------------------------------------- /notes/images/004_missing_instructions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/004_missing_instructions.png -------------------------------------------------------------------------------- /notes/images/005_64-bit_instraction_format.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/005_64-bit_instraction_format.png -------------------------------------------------------------------------------- /notes/images/006_function_declaration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/006_function_declaration.png -------------------------------------------------------------------------------- /notes/images/007_function_arguments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/007_function_arguments.png -------------------------------------------------------------------------------- /notes/images/008_stack_frame_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/008_stack_frame_1.png -------------------------------------------------------------------------------- /notes/images/009_stack_frame_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/009_stack_frame_2.png -------------------------------------------------------------------------------- /notes/images/010_local_variables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/010_local_variables.png -------------------------------------------------------------------------------- /notes/images/011_stack_growth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/011_stack_growth.png -------------------------------------------------------------------------------- /notes/images/012_function_flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/012_function_flags.png -------------------------------------------------------------------------------- /notes/images/013_escape_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/013_escape_analysis.png -------------------------------------------------------------------------------- /notes/images/014_stack_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/images/014_stack_structure.png -------------------------------------------------------------------------------- /notes/调试方法.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahfuzhang/learning_go_plan9_assembly/HEAD/notes/调试方法.md --------------------------------------------------------------------------------