< prev index next >

src/cpu/aarch64/vm/aarch64.ad

Print this page
rev 12379 : 8162338: AArch64: Intrinsify fused mac operations
Reviewed-by:
rev 12700 : 8176506: C2: loop unswitching and unsafe accesses cause crash
Reviewed-by:


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" %}


< prev index next >