diff -r 0a8436eda2fa -r 01bca26734bb src/hotspot/cpu/aarch64/assembler_aarch64.hpp --- a/src/hotspot/cpu/aarch64/assembler_aarch64.hpp Fri Jul 26 10:52:47 2019 +0200 +++ b/src/hotspot/cpu/aarch64/assembler_aarch64.hpp Mon Jul 29 11:14:06 2019 +0200 @@ -2662,137 +2662,6 @@ f(0, 10), rf(Vn, 5), rf(Vd, 0); } -/* Simulator extensions to the ISA - - haltsim - - takes no arguments, causes the sim to enter a debug break and then - return from the simulator run() call with STATUS_HALT? The linking - code will call fatal() when it sees STATUS_HALT. - - blrt Xn, Wm - blrt Xn, #gpargs, #fpargs, #type - Xn holds the 64 bit x86 branch_address - call format is encoded either as immediate data in the call - or in register Wm. In the latter case - Wm[13..6] = #gpargs, - Wm[5..2] = #fpargs, - Wm[1,0] = #type - - calls the x86 code address 'branch_address' supplied in Xn passing - arguments taken from the general and floating point registers according - to the supplied counts 'gpargs' and 'fpargs'. may return a result in r0 - or v0 according to the the return type #type' where - - address branch_address; - uimm4 gpargs; - uimm4 fpargs; - enum ReturnType type; - - enum ReturnType - { - void_ret = 0, - int_ret = 1, - long_ret = 1, - obj_ret = 1, // i.e. same as long - float_ret = 2, - double_ret = 3 - } - - notify - - notifies the simulator of a transfer of control. instr[14:0] - identifies the type of change of control. - - 0 ==> initial entry to a method. - - 1 ==> return into a method from a submethod call. - - 2 ==> exit out of Java method code. - - 3 ==> start execution for a new bytecode. - - in cases 1 and 2 the simulator is expected to use a JVM callback to - identify the name of the specific method being executed. in case 4 - the simulator is expected to use a JVM callback to identify the - bytecode index. - - Instruction encodings - --------------------- - - These are encoded in the space with instr[28:25] = 00 which is - unallocated. Encodings are - - 10987654321098765432109876543210 - PSEUDO_HALT = 0x11100000000000000000000000000000 - PSEUDO_BLRT = 0x11000000000000000_______________ - PSEUDO_BLRTR = 0x1100000000000000100000__________ - PSEUDO_NOTIFY = 0x10100000000000000_______________ - - instr[31,29] = op1 : 111 ==> HALT, 110 ==> BLRT/BLRTR, 101 ==> NOTIFY - - for BLRT - instr[14,11] = #gpargs, instr[10,7] = #fpargs - instr[6,5] = #type, instr[4,0] = Rn - for BLRTR - instr[9,5] = Rm, instr[4,0] = Rn - for NOTIFY - instr[14:0] = type : 0 ==> entry, 1 ==> reentry, 2 ==> exit, 3 ==> bcstart -*/ - - enum NotifyType { method_entry, method_reentry, method_exit, bytecode_start }; - - virtual void notify(int type) { - if (UseBuiltinSim) { - starti; - // 109 - f(0b101, 31, 29); - // 87654321098765 - f(0b00000000000000, 28, 15); - f(type, 14, 0); - } - } - - void blrt(Register Rn, int gpargs, int fpargs, int type) { - if (UseBuiltinSim) { - starti; - f(0b110, 31 ,29); - f(0b00, 28, 25); - // 4321098765 - f(0b0000000000, 24, 15); - f(gpargs, 14, 11); - f(fpargs, 10, 7); - f(type, 6, 5); - rf(Rn, 0); - } else { - blr(Rn); - } - } - - void blrt(Register Rn, Register Rm) { - if (UseBuiltinSim) { - starti; - f(0b110, 31 ,29); - f(0b00, 28, 25); - // 4321098765 - f(0b0000000001, 24, 15); - // 43210 - f(0b00000, 14, 10); - rf(Rm, 5); - rf(Rn, 0); - } else { - blr(Rn); - } - } - - void haltsim() { - starti; - f(0b111, 31 ,29); - f(0b00, 28, 27); - // 654321098765432109876543210 - f(0b000000000000000000000000000, 26, 0); - } - Assembler(CodeBuffer* code) : AbstractAssembler(code) { }