Put BaldrMonkey-specific behavior under a setting.
BaldrMonkey will need to enable allones_funcaddrs.
This commit is contained in:
@@ -478,8 +478,7 @@ fnaddr4 = TailRecipe(
|
||||
emit='''
|
||||
PUT_OP(bits | (out_reg0 & 7), rex1(out_reg0), sink);
|
||||
sink.reloc_func(RelocKind::Abs4.into(), func_ref);
|
||||
// Write the immediate as `!0` for the benefit of BaldrMonkey.
|
||||
sink.put4(!0);
|
||||
sink.put4(0);
|
||||
''')
|
||||
|
||||
# XX+rd iq with Abs8 function relocation.
|
||||
@@ -488,6 +487,25 @@ fnaddr8 = TailRecipe(
|
||||
emit='''
|
||||
PUT_OP(bits | (out_reg0 & 7), rex1(out_reg0), sink);
|
||||
sink.reloc_func(RelocKind::Abs8.into(), func_ref);
|
||||
sink.put8(0);
|
||||
''')
|
||||
|
||||
# Similar to fnaddr4, but writes !0 (this is used by BaldrMonkey).
|
||||
allones_fnaddr4 = TailRecipe(
|
||||
'allones_fnaddr4', FuncAddr, size=4, ins=(), outs=GPR,
|
||||
emit='''
|
||||
PUT_OP(bits | (out_reg0 & 7), rex1(out_reg0), sink);
|
||||
sink.reloc_func(RelocKind::Abs4.into(), func_ref);
|
||||
// Write the immediate as `!0` for the benefit of BaldrMonkey.
|
||||
sink.put4(!0);
|
||||
''')
|
||||
|
||||
# Similar to fnaddr8, but writes !0 (this is used by BaldrMonkey).
|
||||
allones_fnaddr8 = TailRecipe(
|
||||
'allones_fnaddr8', FuncAddr, size=8, ins=(), outs=GPR,
|
||||
emit='''
|
||||
PUT_OP(bits | (out_reg0 & 7), rex1(out_reg0), sink);
|
||||
sink.reloc_func(RelocKind::Abs8.into(), func_ref);
|
||||
// Write the immediate as `!0` for the benefit of BaldrMonkey.
|
||||
sink.put8(!0);
|
||||
''')
|
||||
|
||||
Reference in New Issue
Block a user