Skip to content

Instantly share code, notes, and snippets.

@bdonlan
Created April 27, 2020 20:37
Show Gist options
  • Select an option

  • Save bdonlan/6204fbd9e9a5eea855f089dba2a0e70c to your computer and use it in GitHub Desktop.

Select an option

Save bdonlan/6204fbd9e9a5eea855f089dba2a0e70c to your computer and use it in GitHub Desktop.

Revisions

  1. bdonlan created this gist Apr 27, 2020.
    197 changes: 197 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,197 @@
    .data_start


    __refl_const_intnl_udonTypeID: %SystemInt64, null
    __refl_const_intnl_udonTypeName: %SystemString, null
    __0_a_Int32: %SystemInt32, null
    __0_b_Int32: %SystemInt32, null
    __0_c_Int32: %SystemInt32, null
    __0_d_Int32: %SystemInt32, null
    __1_c_Int32: %SystemInt32, null
    __1_d_Int32: %SystemInt32, null
    __2_c_Int32: %SystemInt32, null
    __0_d_Int64: %SystemInt64, null
    __0_const_intnl_SystemInt32: %SystemInt32, null
    __1_const_intnl_SystemInt32: %SystemInt32, null
    __2_const_intnl_SystemInt32: %SystemInt32, null
    __0_const_intnl_exitJumpLoc_UInt32: %SystemUInt32, null
    __0_const_intnl_SystemUInt32: %SystemUInt32, null
    __1_const_intnl_exitJumpLoc_UInt32: %SystemUInt32, null
    __2_const_intnl_exitJumpLoc_UInt32: %SystemUInt32, null
    __3_const_intnl_exitJumpLoc_UInt32: %SystemUInt32, null
    __4_const_intnl_exitJumpLoc_UInt32: %SystemUInt32, null
    __0_intnl_returnValSymbol_Int32: %SystemInt32, null
    __0_intnl_SystemInt32: %SystemInt32, null
    __1_intnl_SystemInt32: %SystemInt32, null
    __2_intnl_SystemInt32: %SystemInt32, null
    __3_intnl_SystemInt32: %SystemInt32, null
    __0_intnl_returnValSymbol_Int64: %SystemInt64, null
    __0_intnl_SystemInt64: %SystemInt64, null
    __1_intnl_SystemInt64: %SystemInt64, null
    __2_intnl_SystemInt64: %SystemInt64, null
    __0_intnl_returnTarget_UInt32: %SystemUInt32, null

    .data_end


    # using System.Collections.Generic;

    # using UdonSharp;

    # using UnityEngine;

    # using VRC.SDKBase;

    # using VRC.Udon;

    # public class GameObject1 : UdonSharpBehaviour
    .code_start

    # int f(int c, int d)
    f:

    PUSH, __0_const_intnl_SystemUInt32

    # {

    # return c + d;
    PUSH, __0_c_Int32
    PUSH, __0_d_Int32
    PUSH, __0_intnl_returnValSymbol_Int32
    EXTERN, "SystemInt32.__op_Addition__SystemInt32_SystemInt32__SystemInt32"
    PUSH, __0_intnl_returnTarget_UInt32 #Explicit return sequence
    COPY
    JUMP_INDIRECT, __0_intnl_returnTarget_UInt32
    PUSH, __0_intnl_returnTarget_UInt32 #Function epilogue
    COPY
    JUMP_INDIRECT, __0_intnl_returnTarget_UInt32


    # long f2(int c, int d)
    f2:

    PUSH, __0_const_intnl_SystemUInt32

    # {

    # return c + d;
    PUSH, __1_c_Int32
    PUSH, __1_d_Int32
    PUSH, __0_intnl_SystemInt32
    EXTERN, "SystemInt32.__op_Addition__SystemInt32_SystemInt32__SystemInt32"
    PUSH, __0_intnl_SystemInt32
    PUSH, __0_intnl_SystemInt64
    EXTERN, "SystemConvert.__ToInt64__SystemInt32__SystemInt64"
    PUSH, __0_intnl_SystemInt64
    PUSH, __0_intnl_returnValSymbol_Int64
    COPY
    PUSH, __0_intnl_returnTarget_UInt32 #Explicit return sequence
    COPY
    JUMP_INDIRECT, __0_intnl_returnTarget_UInt32
    PUSH, __0_intnl_returnTarget_UInt32 #Function epilogue
    COPY
    JUMP_INDIRECT, __0_intnl_returnTarget_UInt32


    # void Start()
    .export _start

    _start:

    PUSH, __0_const_intnl_SystemUInt32

    # {

    # int a = 1;
    PUSH, __0_const_intnl_SystemInt32
    PUSH, __0_a_Int32
    COPY

    # int b = 2;
    PUSH, __1_const_intnl_SystemInt32
    PUSH, __0_b_Int32
    COPY

    # int c = f(a + b, a * b) + f(0,0);
    PUSH, __0_a_Int32
    PUSH, __0_b_Int32
    PUSH, __0_c_Int32
    EXTERN, "SystemInt32.__op_Addition__SystemInt32_SystemInt32__SystemInt32"
    PUSH, __0_a_Int32
    PUSH, __0_b_Int32
    PUSH, __0_d_Int32
    EXTERN, "SystemInt32.__op_Multiplication__SystemInt32_SystemInt32__SystemInt32"
    PUSH, __0_const_intnl_exitJumpLoc_UInt32
    JUMP, 0x00000008
    PUSH, __2_const_intnl_SystemInt32
    PUSH, __0_c_Int32
    COPY
    PUSH, __2_const_intnl_SystemInt32
    PUSH, __0_d_Int32
    COPY
    PUSH, __0_intnl_returnValSymbol_Int32
    PUSH, __1_intnl_SystemInt32
    COPY # Copy-on-write symbol value dirtied
    PUSH, __1_const_intnl_exitJumpLoc_UInt32
    JUMP, 0x00000008
    PUSH, __1_intnl_SystemInt32
    PUSH, __0_intnl_returnValSymbol_Int32
    PUSH, __2_c_Int32
    EXTERN, "SystemInt32.__op_Addition__SystemInt32_SystemInt32__SystemInt32"

    # long d = f(a + b, a * b) + f2(0, 0);
    PUSH, __0_a_Int32
    PUSH, __0_b_Int32
    PUSH, __0_c_Int32
    EXTERN, "SystemInt32.__op_Addition__SystemInt32_SystemInt32__SystemInt32"
    PUSH, __0_a_Int32
    PUSH, __0_b_Int32
    PUSH, __0_d_Int32
    EXTERN, "SystemInt32.__op_Multiplication__SystemInt32_SystemInt32__SystemInt32"
    PUSH, __2_const_intnl_exitJumpLoc_UInt32
    JUMP, 0x00000008
    PUSH, __2_const_intnl_SystemInt32
    PUSH, __1_c_Int32
    COPY
    PUSH, __2_const_intnl_SystemInt32
    PUSH, __1_d_Int32
    COPY
    PUSH, __0_intnl_returnValSymbol_Int32
    PUSH, __2_intnl_SystemInt32
    COPY # Copy-on-write symbol value dirtied
    PUSH, __3_const_intnl_exitJumpLoc_UInt32
    JUMP, 0x00000058
    PUSH, __2_intnl_SystemInt32
    PUSH, __1_intnl_SystemInt64
    EXTERN, "SystemConvert.__ToInt64__SystemInt32__SystemInt64"
    PUSH, __1_intnl_SystemInt64
    PUSH, __0_intnl_returnValSymbol_Int64
    PUSH, __0_d_Int64
    EXTERN, "SystemInt64.__op_Addition__SystemInt64_SystemInt64__SystemInt64"

    # d = f(a + b, a * b) + 2;
    PUSH, __0_a_Int32
    PUSH, __0_b_Int32
    PUSH, __0_c_Int32
    EXTERN, "SystemInt32.__op_Addition__SystemInt32_SystemInt32__SystemInt32"
    PUSH, __0_a_Int32
    PUSH, __0_b_Int32
    PUSH, __0_d_Int32
    EXTERN, "SystemInt32.__op_Multiplication__SystemInt32_SystemInt32__SystemInt32"
    PUSH, __4_const_intnl_exitJumpLoc_UInt32
    JUMP, 0x00000008
    PUSH, __0_intnl_returnValSymbol_Int32
    PUSH, __1_const_intnl_SystemInt32
    PUSH, __3_intnl_SystemInt32
    EXTERN, "SystemInt32.__op_Addition__SystemInt32_SystemInt32__SystemInt32"
    PUSH, __3_intnl_SystemInt32
    PUSH, __2_intnl_SystemInt64
    EXTERN, "SystemConvert.__ToInt64__SystemInt32__SystemInt64"
    PUSH, __2_intnl_SystemInt64
    PUSH, __0_d_Int64
    COPY
    PUSH, __0_intnl_returnTarget_UInt32 #Function epilogue
    COPY
    JUMP_INDIRECT, __0_intnl_returnTarget_UInt32

    .code_end