blob: efd295a554226c740fec567277e227d9abe6ab7a [file] [log] [blame]
package(default_visibility = ["//visibility:public"])
alias(
name = "pico_divider",
actual = select({
"//bazel/constraint:pico_divider_auto_enabled": ":pico_divider_auto",
"//bazel/constraint:pico_divider_hardware_enabled": ":divider_hardware",
"//conditions:default": ":divider_compiler",
}),
)
alias(
name = "pico_divider_auto",
actual = select({
"//bazel/constraint:rp2040": ":divider_hardware",
"//conditions:default": ":divider_compiler",
}),
)
cc_library(
name = "divider_compiler",
srcs = ["divider_compiler.c"],
target_compatible_with = ["//bazel/constraint:rp2350"],
deps = [
"//src/common/pico_divider_headers",
"//src/rp2_common:hardware_regs",
"//src/rp2_common:pico_platform",
"//src/rp2_common/hardware_divider",
],
)
cc_library(
name = "divider_hardware",
srcs = ["divider_hardware.S"],
linkopts = [
"-Wl,--wrap=__aeabi_idiv",
"-Wl,--wrap=__aeabi_idivmod",
"-Wl,--wrap=__aeabi_ldivmod",
"-Wl,--wrap=__aeabi_uidiv",
"-Wl,--wrap=__aeabi_uidivmod",
"-Wl,--wrap=__aeabi_uldivmod",
],
target_compatible_with = ["//bazel/constraint:rp2040"],
deps = [
"//src/common/pico_divider_headers",
"//src/rp2_common:hardware_regs",
"//src/rp2_common:pico_platform",
"//src/rp2_common/hardware_divider",
],
alwayslink = True, # Ensures the wrapped symbols are linked in.
)