15368 // epilog node loads ret address into lr as part of frame pop
15369 instruct Ret()
15370 %{
15371 match(Return);
15372
15373 format %{ "ret\t// return register" %}
15374
15375 ins_encode( aarch64_enc_ret() );
15376
15377 ins_pipe(pipe_branch);
15378 %}
15379
15380 // Die now.
15381 instruct ShouldNotReachHere() %{
15382 match(Halt);
15383
15384 ins_cost(CALL_COST);
15385 format %{ "ShouldNotReachHere" %}
15386
15387 ins_encode %{
15388 // TODO
15389 // implement proper trap call here
15390 __ brk(999);
15391 %}
15392
15393 ins_pipe(pipe_class_default);
15394 %}
15395
15396 // ============================================================================
15397 // Partial Subtype Check
15398 //
15399 // superklass array for an instance of the superklass. Set a hidden
15400 // internal cache on a hit (cache is checked with exposed code in
15401 // gen_subtype_check()). Return NZ for a miss or zero for a hit. The
15402 // encoding ALSO sets flags.
15403
15404 instruct partialSubtypeCheck(iRegP_R4 sub, iRegP_R0 super, iRegP_R2 temp, iRegP_R5 result, rFlagsReg cr)
15405 %{
15406 match(Set result (PartialSubtypeCheck sub super));
15407 effect(KILL cr, KILL temp);
15408
15409 ins_cost(1100); // slightly larger than the next version
15410 format %{ "partialSubtypeCheck $result, $sub, $super" %}
|
15368 // epilog node loads ret address into lr as part of frame pop
15369 instruct Ret()
15370 %{
15371 match(Return);
15372
15373 format %{ "ret\t// return register" %}
15374
15375 ins_encode( aarch64_enc_ret() );
15376
15377 ins_pipe(pipe_branch);
15378 %}
15379
15380 // Die now.
15381 instruct ShouldNotReachHere() %{
15382 match(Halt);
15383
15384 ins_cost(CALL_COST);
15385 format %{ "ShouldNotReachHere" %}
15386
15387 ins_encode %{
15388 __ halt();
15389 %}
15390
15391 ins_pipe(pipe_class_default);
15392 %}
15393
15394 // ============================================================================
15395 // Partial Subtype Check
15396 //
15397 // superklass array for an instance of the superklass. Set a hidden
15398 // internal cache on a hit (cache is checked with exposed code in
15399 // gen_subtype_check()). Return NZ for a miss or zero for a hit. The
15400 // encoding ALSO sets flags.
15401
15402 instruct partialSubtypeCheck(iRegP_R4 sub, iRegP_R0 super, iRegP_R2 temp, iRegP_R5 result, rFlagsReg cr)
15403 %{
15404 match(Set result (PartialSubtypeCheck sub super));
15405 effect(KILL cr, KILL temp);
15406
15407 ins_cost(1100); // slightly larger than the next version
15408 format %{ "partialSubtypeCheck $result, $sub, $super" %}
|