A method (500, 600, 700, 800, 900) for processing a binary translation task on a multi-core computing device (100, 1000), comprising: identifying, using a first processing core of the computing device, a BT task to be processed with respect to a set of code during execution of the set of code on the first processing core; queuing, using the first processing core, the BT task in a queue accessible to a second processing core of the computing device, the second processing core being different from the first processing core and wherein the BT task is queued with data representative of relative priority of the BT task and/or data representative of a portion of a previously processed BT task; determining that the second processing core is in an idle state or has received an instruction through an operating system to enter an idle state; in response to determining that the second processing core is in an idle state or has received an instruction through an operating system to enter an idle state characterized by: changing a state of the second processing core to a non-idle state, changing and storing a context of the second processing core, and processing at least some of the BT task using the second processing core, wherein processing at least some of the BT task using the second processing core comprises: identifying a power management objective of the computing device; determining whether processing the BT task using the second processing core is consistent with the power management objective; when processing the BT task using the second processing core is not consistent with the power management objective, portioning the BT task into a plurality of BT subtasks, wherein a first BT subtask of the plurality of BT subtasks may be processed using the second processing core consistently with the power management objective; and processing the first BT subtask using the second processing core. identifying, using a first processing core of the computing device, a BT task to be processed with respect to a set of code during execution of the set of code on the first processing core; queuing, using the first processing core, the BT task in a queue accessible to a second processing core of the computing device, the second processing core being different from the first processing core and wherein the BT task is queued with data representative of relative priority of the BT task and/or data representative of a portion of a previously processed BT task; determining that the second processing core is in an idle state or has received an instruction through an operating system to enter an idle state; in response to determining that the second processing core is in an idle state or has received an instruction through an operating system to enter an idle state characterized by: changing a state of the second processing core to a non-idle state, changing and storing a context of the second processing core, and processing at least some of the BT task using the second processing core, changing a state of the second processing core to a non-idle state, changing and storing a context of the second processing core, and processing at least some of the BT task using the second processing core, identifying a power management objective of the computing device; determining whether processing the BT task using the second processing core is consistent with the power management objective; when processing the BT task using the second processing core is not consistent with the power management objective, portioning the BT task into a plurality of BT subtasks, wherein a first BT subtask of the plurality of BT subtasks may be processed using the second processing core consistently with the power management objective; and processing the first BT subtask using the second processing core.