OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 1600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1611 2 * reg + 1, ReadW(reinterpret_cast<int32_t>(address + 1), instr)); | 1611 2 * reg + 1, ReadW(reinterpret_cast<int32_t>(address + 1), instr)); |
1612 } else { | 1612 } else { |
1613 WriteW(reinterpret_cast<int32_t>(address), | 1613 WriteW(reinterpret_cast<int32_t>(address), |
1614 get_sinteger_from_s_register(2 * reg), instr); | 1614 get_sinteger_from_s_register(2 * reg), instr); |
1615 WriteW(reinterpret_cast<int32_t>(address + 1), | 1615 WriteW(reinterpret_cast<int32_t>(address + 1), |
1616 get_sinteger_from_s_register(2 * reg + 1), instr); | 1616 get_sinteger_from_s_register(2 * reg + 1), instr); |
1617 } | 1617 } |
1618 address += 2; | 1618 address += 2; |
1619 } | 1619 } |
1620 } | 1620 } |
1621 ASSERT_EQ(((intptr_t)address) - operand_size, end_address); | 1621 ASSERT(reinterpret_cast<intptr_t>(address) - operand_size == end_address); |
1622 } | 1622 } |
1623 | 1623 |
1624 | 1624 |
1625 // Calls into the V8 runtime are based on this very simple interface. | 1625 // Calls into the V8 runtime are based on this very simple interface. |
1626 // Note: To be able to return two values from some calls the code in runtime.cc | 1626 // Note: To be able to return two values from some calls the code in runtime.cc |
1627 // uses the ObjectPair which is essentially two 32-bit values stuffed into a | 1627 // uses the ObjectPair which is essentially two 32-bit values stuffed into a |
1628 // 64-bit value. With the code below we assume that all runtime calls return | 1628 // 64-bit value. With the code below we assume that all runtime calls return |
1629 // 64 bits of result. If they don't, the r1 result register contains a bogus | 1629 // 64 bits of result. If they don't, the r1 result register contains a bogus |
1630 // value, which is fine because it is caller-saved. | 1630 // value, which is fine because it is caller-saved. |
1631 typedef int64_t (*SimulatorRuntimeCall)(int32_t arg0, | 1631 typedef int64_t (*SimulatorRuntimeCall)(int32_t arg0, |
(...skipping 1647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3279 uintptr_t address = *stack_slot; | 3279 uintptr_t address = *stack_slot; |
3280 set_register(sp, current_sp + sizeof(uintptr_t)); | 3280 set_register(sp, current_sp + sizeof(uintptr_t)); |
3281 return address; | 3281 return address; |
3282 } | 3282 } |
3283 | 3283 |
3284 } } // namespace v8::internal | 3284 } } // namespace v8::internal |
3285 | 3285 |
3286 #endif // USE_SIMULATOR | 3286 #endif // USE_SIMULATOR |
3287 | 3287 |
3288 #endif // V8_TARGET_ARCH_ARM | 3288 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |