equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. |
3 * Copyright (c) 2016, 2017 SAP SE. All rights reserved. |
3 * Copyright (c) 2016, 2018 SAP SE. All rights reserved. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
5 * |
5 * |
6 * This code is free software; you can redistribute it and/or modify it |
6 * This code is free software; you can redistribute it and/or modify it |
7 * under the terms of the GNU General Public License version 2 only, as |
7 * under the terms of the GNU General Public License version 2 only, as |
8 * published by the Free Software Foundation. |
8 * published by the Free Software Foundation. |
312 |
312 |
313 // Save return pc in old frame. |
313 // Save return pc in old frame. |
314 __ save_return_pc(return_pc); |
314 __ save_return_pc(return_pc); |
315 |
315 |
316 // Push a new frame (includes stack linkage). |
316 // Push a new frame (includes stack linkage). |
317 // use return_pc as scratch for push_frame. Z_R0_scratch (the default) and Z_R1_scratch are |
317 // Use return_pc as scratch for push_frame. Z_R0_scratch (the default) and Z_R1_scratch are |
318 // illegally used to pass parameters (SAPJVM extension) by RangeCheckStub::emit_code(). |
318 // illegally used to pass parameters by RangeCheckStub::emit_code(). |
319 __ push_frame(frame_size_in_bytes, return_pc); |
319 __ push_frame(frame_size_in_bytes, return_pc); |
320 // We have to restore return_pc right away. |
320 // We have to restore return_pc right away. |
321 // Nobody else will. Furthermore, return_pc isn't necessarily the default (Z_R14). |
321 // Nobody else will. Furthermore, return_pc isn't necessarily the default (Z_R14). |
322 // Nobody else knows which register we saved. |
322 // Nobody else knows which register we saved. |
323 __ z_lg(return_pc, _z_abi16(return_pc) + frame_size_in_bytes, Z_SP); |
323 __ z_lg(return_pc, _z_abi16(return_pc) + frame_size_in_bytes, Z_SP); |