1package(default_visibility = ["//visibility:public"]) 2 3alias( 4 name = "pico_divider", 5 actual = select({ 6 "//bazel/constraint:pico_divider_auto_enabled": ":pico_divider_auto", 7 "//bazel/constraint:pico_divider_hardware_enabled": ":divider_hardware", 8 "//conditions:default": ":divider_compiler", 9 }), 10) 11 12alias( 13 name = "pico_divider_auto", 14 actual = select({ 15 "//bazel/constraint:rp2040": ":divider_hardware", 16 "//conditions:default": ":divider_compiler", 17 }), 18) 19 20cc_library( 21 name = "divider_compiler", 22 srcs = ["divider_compiler.c"], 23 target_compatible_with = ["//bazel/constraint:rp2350"], 24 deps = [ 25 "//src/common/pico_divider_headers", 26 "//src/rp2_common:hardware_regs", 27 "//src/rp2_common:pico_platform", 28 "//src/rp2_common/hardware_divider", 29 ], 30) 31 32cc_library( 33 name = "divider_hardware", 34 srcs = ["divider_hardware.S"], 35 linkopts = [ 36 "-Wl,--wrap=__aeabi_idiv", 37 "-Wl,--wrap=__aeabi_idivmod", 38 "-Wl,--wrap=__aeabi_ldivmod", 39 "-Wl,--wrap=__aeabi_uidiv", 40 "-Wl,--wrap=__aeabi_uidivmod", 41 "-Wl,--wrap=__aeabi_uldivmod", 42 ], 43 target_compatible_with = ["//bazel/constraint:rp2040"], 44 deps = [ 45 "//src/common/pico_divider_headers", 46 "//src/rp2_common:hardware_regs", 47 "//src/rp2_common:pico_platform", 48 "//src/rp2_common/hardware_divider", 49 ], 50 alwayslink = True, # Ensures the wrapped symbols are linked in. 51) 52