Add intrinsics: byte_swap (integers and floats); count_ones; trailing_zeros; reverse_bits

This commit is contained in:
gingerBill
2021-04-22 11:06:16 +01:00
parent 0a66f8c9a3
commit 542098dc6f
3 changed files with 128 additions and 3 deletions
+9
View File
@@ -45,6 +45,11 @@ enum BuiltinProcId {
BuiltinProc_debug_trap,
BuiltinProc_read_cycle_counter,
BuiltinProc_count_ones,
BuiltinProc_trailing_zeros,
BuiltinProc_reverse_bits,
BuiltinProc_byte_swap,
BuiltinProc_volatile_store,
BuiltinProc_volatile_load,
@@ -254,6 +259,10 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = {
{STR_LIT("debug_trap"), 0, false, Expr_Stmt, BuiltinProcPkg_intrinsics, /*diverging*/false},
{STR_LIT("read_cycle_counter"), 0, false, Expr_Expr, BuiltinProcPkg_intrinsics},
{STR_LIT("count_ones"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
{STR_LIT("trailing_zeros"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
{STR_LIT("reverse_bits"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
{STR_LIT("byte_swap"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
{STR_LIT("volatile_store"), 2, false, Expr_Stmt, BuiltinProcPkg_intrinsics},
{STR_LIT("volatile_load"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},