1805 |
1805 |
1806 } |
1806 } |
1807 break; |
1807 break; |
1808 #endif // INCLUDE_ALL_GCS |
1808 #endif // INCLUDE_ALL_GCS |
1809 |
1809 |
|
1810 case predicate_failed_trap_id: |
|
1811 { |
|
1812 StubFrame f(sasm, "predicate_failed_trap", dont_gc_arguments); |
|
1813 |
|
1814 OopMap* map = save_live_registers(sasm, 1); |
|
1815 |
|
1816 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, predicate_failed_trap)); |
|
1817 oop_maps = new OopMapSet(); |
|
1818 oop_maps->add_gc_map(call_offset, map); |
|
1819 restore_live_registers(sasm); |
|
1820 __ leave(); |
|
1821 DeoptimizationBlob* deopt_blob = SharedRuntime::deopt_blob(); |
|
1822 assert(deopt_blob != NULL, "deoptimization blob must have been created"); |
|
1823 |
|
1824 __ jump(RuntimeAddress(deopt_blob->unpack_with_reexecution())); |
|
1825 } |
|
1826 break; |
|
1827 |
1810 default: |
1828 default: |
1811 { StubFrame f(sasm, "unimplemented entry", dont_gc_arguments); |
1829 { StubFrame f(sasm, "unimplemented entry", dont_gc_arguments); |
1812 __ movptr(rax, (int)id); |
1830 __ movptr(rax, (int)id); |
1813 __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), rax); |
1831 __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), rax); |
1814 __ should_not_reach_here(); |
1832 __ should_not_reach_here(); |