@@ -220,12 +220,12 @@ let isCall = 1 in
220220 // registers are added manually.
221221 let Uses = [ESP, SSP] in {
222222 def CALLpcrel32 : Ii32PCRel<0xE8, RawFrm,
223- (outs), (ins i32imm_pcrel :$dst),
223+ (outs), (ins i32imm_brtarget :$dst),
224224 "call{l}\t$dst", []>, OpSize32,
225225 Requires<[Not64BitMode]>, Sched<[WriteJump]>;
226226 let hasSideEffects = 0 in
227227 def CALLpcrel16 : Ii16PCRel<0xE8, RawFrm,
228- (outs), (ins i16imm_pcrel :$dst),
228+ (outs), (ins i16imm_brtarget :$dst),
229229 "call{w}\t$dst", []>, OpSize16,
230230 Sched<[WriteJump]>;
231231 def CALL16r : I<0xFF, MRM2r, (outs), (ins GR16:$dst),
@@ -285,15 +285,15 @@ let isCall = 1 in
285285// Tail call stuff.
286286let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1,
287287 isCodeGenOnly = 1, Uses = [ESP, SSP] in {
288- def TCRETURNdi : PseudoI<(outs), (ins i32imm_pcrel :$dst, i32imm:$offset),
288+ def TCRETURNdi : PseudoI<(outs), (ins i32imm_brtarget :$dst, i32imm:$offset),
289289 []>, Sched<[WriteJump]>, NotMemoryFoldable;
290290 def TCRETURNri : PseudoI<(outs), (ins ptr_rc_tailcall:$dst, i32imm:$offset),
291291 []>, Sched<[WriteJump]>, NotMemoryFoldable;
292292 let mayLoad = 1 in
293293 def TCRETURNmi : PseudoI<(outs), (ins i32mem_TC:$dst, i32imm:$offset),
294294 []>, Sched<[WriteJumpLd]>;
295295
296- def TAILJMPd : PseudoI<(outs), (ins i32imm_pcrel :$dst),
296+ def TAILJMPd : PseudoI<(outs), (ins i32imm_brtarget :$dst),
297297 []>, Sched<[WriteJump]>;
298298
299299 def TAILJMPr : PseudoI<(outs), (ins ptr_rc_tailcall:$dst),
@@ -309,10 +309,11 @@ let isCall = 1, isTerminator = 1, isReturn = 1, isBranch = 1,
309309 isCodeGenOnly = 1, SchedRW = [WriteJump] in
310310 let Uses = [ESP, EFLAGS, SSP] in {
311311 def TCRETURNdicc : PseudoI<(outs),
312- (ins i32imm_pcrel:$dst, i32imm:$offset, i32imm:$cond), []>;
312+ (ins i32imm_brtarget:$dst, i32imm:$offset, i32imm:$cond),
313+ []>;
313314
314315 // This gets substituted to a conditional jump instruction in MC lowering.
315- def TAILJMPd_CC : PseudoI<(outs), (ins i32imm_pcrel :$dst, i32imm:$cond), []>;
316+ def TAILJMPd_CC : PseudoI<(outs), (ins i32imm_brtarget :$dst, i32imm:$cond), []>;
316317}
317318
318319
@@ -328,7 +329,7 @@ let isCall = 1, Uses = [RSP, SSP], SchedRW = [WriteJump] in {
328329 // that the offset between an arbitrary immediate and the call will fit in
329330 // the 32-bit pcrel field that we have.
330331 def CALL64pcrel32 : Ii32PCRel<0xE8, RawFrm,
331- (outs), (ins i64i32imm_pcrel :$dst),
332+ (outs), (ins i64i32imm_brtarget :$dst),
332333 "call{q}\t$dst", []>, OpSize32,
333334 Requires<[In64BitMode]>;
334335 def CALL64r : I<0xFF, MRM2r, (outs), (ins GR64:$dst),
@@ -357,7 +358,7 @@ let isCall = 1, Uses = [RSP, SSP], SchedRW = [WriteJump] in {
357358let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1,
358359 isCodeGenOnly = 1, Uses = [RSP, SSP] in {
359360 def TCRETURNdi64 : PseudoI<(outs),
360- (ins i64i32imm_pcrel :$dst, i32imm:$offset),
361+ (ins i64i32imm_brtarget :$dst, i32imm:$offset),
361362 []>, Sched<[WriteJump]>;
362363 def TCRETURNri64 : PseudoI<(outs),
363364 (ins ptr_rc_tailcall:$dst, i32imm:$offset),
@@ -367,7 +368,7 @@ let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1,
367368 (ins i64mem_TC:$dst, i32imm:$offset),
368369 []>, Sched<[WriteJumpLd]>, NotMemoryFoldable;
369370
370- def TAILJMPd64 : PseudoI<(outs), (ins i64i32imm_pcrel :$dst),
371+ def TAILJMPd64 : PseudoI<(outs), (ins i64i32imm_brtarget :$dst),
371372 []>, Sched<[WriteJump]>;
372373
373374 def TAILJMPr64 : PseudoI<(outs), (ins ptr_rc_tailcall:$dst),
@@ -415,10 +416,10 @@ let isCall = 1, isTerminator = 1, isReturn = 1, isBranch = 1,
415416 isCodeGenOnly = 1, SchedRW = [WriteJump] in
416417 let Uses = [RSP, EFLAGS, SSP] in {
417418 def TCRETURNdi64cc : PseudoI<(outs),
418- (ins i64i32imm_pcrel :$dst, i32imm:$offset,
419+ (ins i64i32imm_brtarget :$dst, i32imm:$offset,
419420 i32imm:$cond), []>;
420421
421422 // This gets substituted to a conditional jump instruction in MC lowering.
422423 def TAILJMPd64_CC : PseudoI<(outs),
423- (ins i64i32imm_pcrel :$dst, i32imm:$cond), []>;
424+ (ins i64i32imm_brtarget :$dst, i32imm:$cond), []>;
424425}
0 commit comments